【问题标题】:Why does Structured Streaming fail with "java.lang.IncompatibleClassChangeError: Implementing class"?为什么结构化流式处理因“java.lang.IncompatibleClassChangeError:Implementing class”而失败?
【发布时间】:2017-08-22 18:04:21
【问题描述】:

我想通过 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()

【问题讨论】:

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


    【解决方案1】:

    您需要spark-sql-kafka 才能进行结构化流式传输:

    --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.2.0
    

    另外,请确保您使用的 Scala(以上 2.11)和 Spark (2.2.0) 版本与您在集群上使用的版本相同。

    【讨论】:

    • 确保版本与您的 Spark 集群相同是非常关键的。非常感谢您的建议!
    【解决方案2】:

    请参考This

    您正在使用当前不支持 python 的 spark-streaming-kafka-0-10。

    【讨论】:

      猜你喜欢
      • 2012-08-30
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 2012-04-06
      • 1970-01-01
      • 2012-09-08
      • 2013-09-24
      • 2011-07-23
      相关资源
      最近更新 更多