具有Spark结构化流的Kafka与Spark版本3.0.0集成

时间:2020-05-19 13:04:48

标签: apache-spark pyspark apache-kafka spark-structured-streaming spark-streaming-kafka

带有火花流的卡夫卡抛出错误:

from pyspark.streaming.kafka import KafkaUtils ImportError: No module named kafka

我已经设置了一个kafka代理和一个有一个主从一个的工作Spark环境。

import os

os.environ['PYSPARK_PYTHON'] = '/usr/bin/python2.7'
import findspark
findspark.init('/usr/spark/spark-3.0.0-preview2-bin-hadoop2.7')
import pyspark
import sys
from pyspark import SparkConf,SparkContext
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils



if __name__=="__main__":
    sc = SparkContext(appName="SparkStreamAISfromKAFKA")
    sc.setLogLevel("WARN")
    ssc = StreamingContext(sc,1)
    kvs = KafkaUtils.createStream(ssc,"my-kafka-broker","raw-event-streaming-consumer",{'enriched_ais_messages':1})
    lines = kvs.map(lambda x: x[1])
    lines.count().map(lambda x: 'Messages AIS: %s' % x).pprint()
    ssc.start()
    ssc.awaitTermination()

对于错误,我认为缺少与kafka ans相关的某些内容,特别是与版本有关的内容。有人能帮忙吗?

spark-version:版本3.0.0-preview2

我执行:

/usr/spark/spark-3.0.0-preview2-bin-hadoop2.7/bin/spark-submit --packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.1 --jars spark-streaming-kafka-0-10_2.11 spark_streamer.py spark://mysparkip:7077

1 个答案:

答案 0 :(得分:2)

根据https://jsfiddle.net/u6tvbqj0/2/,Spark版本3.0.0中尚未提供Python API。

您可以使用Spark版本2.4.5解决您的问题。