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

问题描述 投票:0回答:1

使用 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

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

我收到这样的错误:

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

同样,我无法运行与 Kafka 集成的 Spark 示例:https://spark.apache.org/docs/2.1.0/structed-streaming-kafka-integration.html

所以我想知道我哪里错了,或者是否实际上支持使用 pyspark 与 Spark 2.1 集成,因为此页面仅提到 Scala 和 Java 作为版本 0.10 中支持的语言让我怀疑:https://spark.apache.org/文档/最新/streaming-kafka-integration.html (但如果还不支持,为什么要发布 Python 示例?)

apache-spark pyspark apache-kafka spark-streaming
1个回答
4
投票

您需要使用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 .

© www.soinside.com 2019 - 2024. All rights reserved.