pyspark 错误:java.lang.NoClassDefFoundError:org/apache/spark/sql/catalyst/expressions/IfNull while executing SQL on Ignite DataFrame

cbjzeqam  于 2023-08-02  发布在  Spark
关注(0)|答案(2)|浏览(127)

我有一个Sparkdataframe,我写了点燃格式

`spark_df.write.format("ignite")\
        .mode("overwrite")\
        .option("table", "processed_logs")\
        .option("primaryKeyFields","player_id")\
        .option("config",config_file).save()`

字符串
接下来,我将相同的内容读入 Dataframe

`ignite_df = spark.read.format("ignite")\
    .option("table", "processed_logs")\
    .option("config", config_file)\
    .load()`


我在它上面创建了一个表视图

`ignite_df.createOrReplaceTempView("ignite_table")`


当我对ignite_table运行SQL查询时,我得到这个错误
查询-> spark.sql("Select * from ignite_table where logins > 2").show()
错误-> Py4JJavaError: An error occurred while calling o197.showString. : java.lang.NoClassDefFoundError: org/apache/spark/sql/catalyst/expressions/IfNull at org.apache.ignite.spark.impl.optimization.SystemExpressions$.apply(SystemExpressions.scala:35) at org.apache.ignite.spark.impl.optimization.package$.$anonfun$exprsAllowed$2(package.scala:100)
完整错误-> https://pastebin.pl/view/f33b2e80
如果我使用python瘦客户端,查询可以工作,但我只需要这个实现。请帮我解决这个问题。
PS:Spark版本-> 3.3.2 Ignite版本-> 2.15.0

vs91vp4v

vs91vp4v1#

从Apache Ignite文档中,
Apache Ignite附带了两个模块,支持不同版本的Apache Spark:

ignite-spark-ext 1.0.0 — integration with Spark 2.3

ignite-spark-ext 2.0.0 — integration with Spark 2.4

字符串
看起来spark 3.x甚至与最新的ignite版本不兼容。

ffvjumwh

ffvjumwh2#

支持Spark 3.0,但没有文档记录:
https://downloads.apache.org/ignite/ignite-extensions/ignite-spark-ext/3.0.0/
请在您的Spark版本中尝试此版本。

相关问题