[英]Pyspark Structured streaming locally with Kafka-Jupyter
看了其他答案后,我仍然无法弄清楚。
我能够使用 kafkaProducer 和 kafkaConsumer 从我的笔记本中发送和接收消息。
producer = KafkaProducer(bootstrap_servers=['127.0.0.1:9092'],value_serializer=lambda m: json.dumps(m).encode('ascii'))
consumer = KafkaConsumer('hr',bootstrap_servers=['127.0.0.1:9092'],group_id='abc' )
我尝试使用 spark 上下文和 spark 会话连接到流。
from pyspark.streaming.kafka import KafkaUtils
sc = SparkContext("local[*]", "stream")
ssc = StreamingContext(sc, 1)
这给了我这个错误
Spark Streaming's Kafka libraries not found in class path. Try one
of the following.
1. Include the Kafka library and its dependencies with in the
spark-submit command as
$ bin/spark-submit --packages org.apache.spark:spark-streaming-
kafka-0-8:2.3.2 ...
似乎我需要将 JAR 添加到我的
!/usr/local/bin/spark-submit --master local[*] /usr/local/Cellar/apache-spark/2.3.0/libexec/jars/spark-streaming-kafka-0-8-assembly_2.11-2.3.2.jar pyspark-shell
返回
Error: No main class set in JAR; please specify one with --class
Run with --help for usage help or --verbose for debug output
我上什么课? 我如何让 Pyspark 连接到消费者?
您拥有的命令正在尝试运行spark-streaming-kafka-0-8-assembly_2.11-2.3.2.jar
,并尝试在其中找到pyspark-shell
作为 Java 类。
正如第一个错误所说,您在spark-submit
之后错过了--packages
,这意味着您会这样做
spark-submit --packages ... someApp.jar com.example.YourClass
如果你只是在 Jupyter 本地,你可能想尝试 Kafka-Python,例如,而不是 PySpark...更少的开销,并且没有 Java 依赖。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.