繁体   English   中英

使用 Kafka-Jupyter 在本地进行 Pyspark 结构化流式传输

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM