Spark 2.1结构化流 - 使用Kakfa作为Python的源(pyspark)

时间:2017-03-20 14:22:15

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

使用Apache Spark 2.1版,我想使用Kafka(0.10.0.2.5)作为pyspark的结构化流的源:

kafka_app.py:

from pyspark.sql import SparkSession

spark=SparkSession.builder.appName("TestKakfa").getOrCreate()

kafka=spark.readStream.format("kafka") \
.option("kafka.bootstrap.servers","localhost:6667") \
.option("subscribe","mytopic").load()

我以下列方式启动了应用程序:

./bin/spark-submit kafka_app.py --master local[4] --jars spark-streaming-kafka-0-10-assembly_2.10-2.1.0.jar

从mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka-0-10-assembly_2.10/2.1.0下载.jar后

我得到了这样的错误:

[...] java.lang.ClassNotFoundException:Failed to find data source: kakfa. [...]

同样,我无法运行与Kakfa集成的Spark示例:enter image description here

所以我想知道我错在哪里,或者Kafka是否真的支持使用pyspark与Spark 2.1集成,因为这个页面只提到Scala和Java作为0.10版本中支持的语言让我怀疑:https://spark.apache.org/docs/2.1.0/structured-streaming-kafka-integration.html (但如果还不支持,为什么Python中的一个例子被发布?)

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

你需要使用sql结构的流媒体jar“spark-sql-kafka-0-10_2.11-2.1.0.jar”而不是spark-streaming-kafka-0-10-assembly_2.10-2.1.0的.jar。