我尝试用t1.join(t2, Seq("some column"), "left")
连接两个Cassandra表,收到以下错误消息:
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)
非常感谢你的帮助
1条答案
按热度按时间ar7v8xwq1#
Spark Cassandra connector还不支持Apache Spark 3.3.0,我怀疑这就是为什么它不能工作的原因,尽管我自己还没有做任何验证。
SPARKC-686中要求支持Spark 3.3.0,但所需的工作量很大,请继续关注。
最新支持的Spark版本是3.2,使用Spark cassandra连接器3.2。干杯!