Apache spark 如何播放卡夫卡->;齐柏林飞艇->;火花与当前版本

Apache spark 如何播放卡夫卡->;齐柏林飞艇->;火花与当前版本,apache-spark,pyspark,apache-kafka,spark-streaming,apache-zeppelin,Apache Spark,Pyspark,Apache Kafka,Spark Streaming,Apache Zeppelin,我有一个Kafka 2.3消息代理,希望对Spark中的消息数据进行一些处理。首先,我想使用集成在齐柏林飞艇0.8.1中的Spark 2.4.0,并想使用齐柏林飞艇笔记本进行快速原型制作 对于这个流任务,我需要spark>2.3的“spark-streaming-kafka-0-10”,因为它只支持Java和Scale(而不支持Python)。但齐柏林飞艇中没有默认的Java或Scale解释器 如果我尝试此代码(取自) 我得到以下错误 在类路径中找不到Spark Streaming的Kafka库

我有一个Kafka 2.3消息代理,希望对Spark中的消息数据进行一些处理。首先,我想使用集成在齐柏林飞艇0.8.1中的Spark 2.4.0,并想使用齐柏林飞艇笔记本进行快速原型制作

对于这个流任务,我需要spark>2.3的“spark-streaming-kafka-0-10”,因为它只支持Java和Scale(而不支持Python)。但齐柏林飞艇中没有默认的Java或Scale解释器

如果我尝试此代码(取自)

我得到以下错误

在类路径中找不到Spark Streaming的Kafka库。试试看 下面是一个例子

  • 在中包含Kafka库及其依赖项 spark将命令提交为

    $bin/spark提交--包org.apache.spark:spark-streaming-kafka-0-8:2.4.0

  • 从Maven Central下载工件的JAR, 组Id=org.apache.spark,工件Id=spark-streaming-kafka-0-8-assembly,版本=2.4.0。 然后,将jar包含在spark submit命令中,如下所示

    $bin/spark提交--jars

  • 无法执行第1行:kafkaStream=KafkaUtils.createStream(ssc, 'localhost:9092','spark streaming',{'test':1})回溯(most 最近调用(最后一次):文件 “/tmp/zeppelin_pyspark-8982542851842620568.py”,第380行,in exec(代码,ZCUUserQueryNameSpace)文件“”,第1行,在文件中 “/usr/local/analysis/spark/python/lib/pyspark.zip/pyspark/streaming/kafka.py”, 第78行,在createStream中 helper=KafkaUtils.\u get\u helper(ssc.\u sc)文件“/usr/local/analysis/spark/python/lib/pyspark.zip/pyspark/streaming/kafka.py”, 第217行,输入 返回sc._jvm.org.apache.spark.streaming.kafka.KafkaUtilsPythonHelper() TypeError:“JavaPackage”对象不可调用

    因此,我想知道如何处理这项任务:

  • 我真的应该使用spark-streaming-kafka-0-8吗?几个月以来,它一直被弃用?但是spark-streaming-kafka-0-10似乎在默认的齐柏林飞艇jar目录中
  • 在Zeppelin for Java/Scala中配置/创建解释器,因为spark-streaming-kafka-0-10只支持这些语言
  • 忽略齐柏林飞艇,并在控制台上使用“spark submit”进行操作

  • 为什么不呢?您确定要使用Spark Streaming而不是Spark Structured Streaming吗?齐柏林飞艇的默认Spark解释器是Scala,不确定您在哪里发现它不存在。因此,Structured Streaming确实支持Python作为提示。我尝试过结构化流媒体,但也无法实现:为什么不呢?您确定要使用Spark Streaming而不是Spark Structured Streaming吗?齐柏林飞艇的默认Spark解释器是Scala,不确定您在哪里发现它不存在。因此,Structured Streaming确实支持Python作为提示。我尝试了结构化流媒体,但也无法实现:
    %spark.pyspark
    from pyspark import SparkContext
    from pyspark.streaming import StreamingContext
    from pyspark.streaming.kafka import KafkaUtils
    import json
    
    sc.setLogLevel("WARN")
    ssc = StreamingContext(sc, 60)
    kafkaStream = KafkaUtils.createStream(ssc, 'localhost:9092', 'spark-streaming', {'test':1})