为什么Structured Streaming失败了" java.lang.IncompatibleClassChangeError:实现类"?

时间:2017-08-22 18:04:21

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

我想使用带有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()

2 个答案:

答案 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。