我想使用带有PySpark的结构化流媒体来运行Spark应用程序。
我将Spark 2.2与Kafka 0.10版本一起使用。
我因以下错误而失败:
java.lang.IncompatibleClassChangeError:实现类
spark-submit
命令如下所示:
/bin/spark-submit \
--packages org.apache.spark:spark-streaming-kafka-0-10_2.11:2.2.0 \
--master local[*] \
/home/umar/structured_streaming.py localhost:2181 fortesting
structured_streaming.py
代码:
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("StructuredStreaming").config("spark.driver.memory", "2g").config("spark.executor.memory", "2g").getOrCreate()
raw_DF = spark.readStream.format("kafka").option("kafka.bootstrap.servers", "localhost:2181").option("subscribe", "fortesting").load()
values = raw_DF.selectExpr("CAST(value AS STRING)").as[String]
values.writeStream.trigger(ProcessingTime("5 seconds")).outputMode("append").format("console").start().awaitTermination()
答案 0 :(得分:2)
结构化流媒体需要spark-sql-kafka
:
--packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.2.0
还要确保在群集上使用相同版本的Scala(上面的2.11)和Spark(2.2.0)。
答案 1 :(得分:-1)
请参考This
你正在使用目前不支持python的spark-streaming-kafka-0-10。