我有一个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
2条答案
按热度按时间vs91vp4v1#
从Apache Ignite文档中,
Apache Ignite附带了两个模块,支持不同版本的Apache Spark:
字符串
看起来spark 3.x甚至与最新的ignite版本不兼容。
ffvjumwh2#
支持Spark 3.0,但没有文档记录:
https://downloads.apache.org/ignite/ignite-extensions/ignite-spark-ext/3.0.0/
请在您的Spark版本中尝试此版本。