Python 如何在PySpark中创建卡夫卡流?
我试图创建一个卡夫卡流,然后对其进行一些转换,但我创建的流似乎为空。我将一个文本文件加载到producer中,然后通过consumer使用它,它工作正常,但它不会创建卡夫卡流。 输入文本文件如下所示,包含36000个条目: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
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,启动一个使用者,然后生成主题。。。此外,您确实需要启动流媒体上下文,因此请在问题中包含该行