Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在PySpark中创建卡夫卡流?_Python_Apache Spark_Pyspark_Apache Kafka - Fatal编程技术网

Python 如何在PySpark中创建卡夫卡流?

Python 如何在PySpark中创建卡夫卡流?,python,apache-spark,pyspark,apache-kafka,Python,Apache Spark,Pyspark,Apache Kafka,我试图创建一个卡夫卡流,然后对其进行一些转换,但我创建的流似乎为空。我将一个文本文件加载到producer中,然后通过consumer使用它,它工作正常,但它不会创建卡夫卡流。 输入文本文件如下所示,包含36000个条目: 10.000000 26.000000 -8.000000 -28.000000 ... 我的python代码是: sc = SparkContext(appName="STALTA") ssc = StreamingContext(sc, 2) broker, topic

我试图创建一个卡夫卡流,然后对其进行一些转换,但我创建的流似乎为空。我将一个文本文件加载到producer中,然后通过consumer使用它,它工作正常,但它不会创建卡夫卡流。 输入文本文件如下所示,包含36000个条目:

10.000000
26.000000
-8.000000
-28.000000
...
我的python代码是:

sc = SparkContext(appName="STALTA")
ssc = StreamingContext(sc, 2)
broker, topic = sys.argv[1:]
kvs = KafkaUtils.createStream(ssc, broker, "raw-event-streaming-consumer",{topic:1})
rdd = kvs.flatMap(lambda line: line.strip().split("\n")).map(lambda strelem: float(strelem))
print("****** ", rdd.count())
ssc.start()
ssc.awaitTermination()
rdd.count()

运行脚本时使用的命令如下:

bin/spark-submit --jars jars/spark-streaming-kafka-0-8-assembly_2.11-2.3.1.jar examples/src/main/python/streaming/sparkkafka.py localhost:2181 consumer6
我也试过localhost:9092,但没用

你知道我做错了什么吗?
谢谢。

我认为您应该将代理更改为zookeeper IP,通常是
localhost:2181
,因为它需要zookeeper IP而不是kafka IP

对于打印
DStream
的问题,可以直接使用
kvs.pprint()
打印,通常它会像rdd的元组一样打印。不要使用
print()
sparkstreaming as output命令无法识别它,因此您将得到这些错误

Error : java.lang.IllegalArgumentException: requirement failed: No output operations registered, so nothing to execute

希望这能对您有所帮助。

您是否尝试过让此代码运行,然后生成?您是否开始流化上下文???@cricket_007它不起作用,因为我需要将主题传递给程序。@nabongs:是的,我做了。我得到了这个错误:java.lang.IllegalArgumentException:requirement失败:没有注册任何输出操作,所以没有要执行的内容我问你是否使用所有需要的参数运行SparkSubmit,启动一个使用者,然后生成主题。。。此外,您确实需要启动流媒体上下文,因此请在问题中包含该行