Spark Cassandra Join ClassCastException



我正在尝试将两个Cassandra表与:t1.join(t2, Seq("some column"), "left")我收到以下错误消息:

Exception in thread "main" java.lang.ClassCastException: scala.Tuple8 cannot be cast to scala.Tuple7 at org.apache.spark.sql.cassandra.execution.CassandraDirectJoinStrategy.apply(CassandraDirectJoinStrategy.scala:27)

我使用的是cassandra v3.11.13和Spark 3.3.0。代码依赖性:

libraryDependencies ++= Seq(
"org.scalatest" %% "scalatest" % "3.2.11" % Test,
"com.github.mrpowers" %% "spark-fast-tests" % "1.0.0" % Test,
"graphframes" % "graphframes" % "0.8.1-spark3.0-s_2.12" % Provided,
"org.rogach" %% "scallop" % "4.1.0" % Provided,
"org.apache.spark" %% "spark-sql" % "3.1.2" % Provided,
"org.apache.spark" %% "spark-graphx" % "3.1.2" % Provided,
"com.datastax.spark" %% "spark-cassandra-connector" % "3.2.0" % Provided)

非常感谢您的帮助

Spark Cassandra连接器还不支持Apache Spark 3.3.0,我怀疑这就是它不工作的原因,尽管我自己还没有做任何验证。

SPARKC-686中要求支持Spark 3.3.0,但所需工作量很大,请继续关注。

最新支持的Spark版本是3.2,使用Spark cassandra连接器3.2。干杯

此提交添加了对Spark 3.3.x的初始支持,尽管在发表此评论时它正在等待RC的/publish,因此您暂时需要自己构建和打包jar,以便在使用Spark 3.3时开始使用它们来解决上述错误。作为一个活跃的用户,这可能是一个很好的机会来提供对任何后续RC的任何反馈。

当RC的/稳定版本可用时,我将更新此评论,这将为其他遇到此问题的人解决上述问题。不幸的是,我并没有足够的声誉来添加这个评论到上面的线程。

最新更新