org.apache.spark.SparkException:写入作业在Databricks上中止



我使用Databricks从Event Hub获取数据,并使用Pyspark Streaming实时处理数据。代码运行良好,但在这一行之后:

df.writeStream.trigger(processingTime='100 seconds').queryName("myquery")
.format("console").outputMode('complete').start()

我得到以下错误:

org.apache.spark.SparkException: Writing job aborted.
Caused by: java.io.InvalidClassException: org.apache.spark.eventhubs.rdd.EventHubsRDD; local class incompatible: stream classdesc

我读到这可能是由于处理能力低,但我使用的是Standard_F4机器,启用自动缩放的标准集群模式。

有什么想法吗?

这看起来像是一个JAR问题。转到spark中的JAR文件夹,检查是否有多个用于azureeventhubs-spark_XXX.XX的JAR。我认为您已经下载了它的不同版本并将其放置在那里,您应该从集合中删除任何具有该名称的JAR。如果您的JAR版本与其他JAR版本不兼容,也可能发生此错误。尝试使用spark-config添加spark-jar。

spark = SparkSession 
.builder 
.appName('my-spark') 
.config('spark.jars.packages', 'com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.12') 
.getOrCreate()

通过这种方式,spark将通过maven下载JAR文件。

最新更新