Scala 将数据从Spark保存到Cassandra会导致java.lang.ClassCastException
我试图使用RDD的Scala 将数据从Spark保存到Cassandra会导致java.lang.ClassCastException,scala,apache-spark,spark-cassandra-connector,Scala,Apache Spark,Spark Cassandra Connector,我试图使用RDD的saveToCassandra将Spark中的数据保存到Scala中的Cassandra,或者使用数据帧保存(两者都会导致相同的错误)。全文如下: java.lang.ClassCastException: 无法将com.datastax.driver.core.DefaultResultSetFuture强制转换为 com.google.common.util.concurrent.ListenableFuture 我已经按照代码进行了操作,但似乎仍然得到了错误 我使用的是C
saveToCassandra
将Spark中的数据保存到Scala中的Cassandra,或者使用数据帧保存(两者都会导致相同的错误)。全文如下:
java.lang.ClassCastException:
无法将com.datastax.driver.core.DefaultResultSetFuture强制转换为
com.google.common.util.concurrent.ListenableFuture
我已经按照代码进行了操作,但似乎仍然得到了错误
我使用的是Cassandra 3.6、Spark 1.6.1和Spark Cassandra连接器1.6。请告诉我是否还有其他可以帮助调试的内容。我遇到了类似的异常,并在build.sbt scala版本中更改后修复了它:
scalaVersion := "2.10.6"
和库依赖项:
libraryDependencies ++= Seq(
"com.datastax.spark" %% "spark-cassandra-connector" % "1.6.0",
"com.datastax.cassandra" % "cassandra-driver-core" % "3.0.2",
"org.apache.spark" %% "spark-core" % "1.6.1" % "provided",
"org.apache.spark" %% "spark-sql" % "1.6.1" % "provided"
)
使用来自的此配置示例可以正常工作。谢谢,这有助于解决此问题。我遇到的一个主要问题是番石榴的版本有冲突,所以如果将来有人遇到这个错误,我会研究一下。如果不将代码放入不同的项目中,我无法解决它,但我想有一种方法可以不这样做(可能是着色?我对它了解不够…。@grzesiekw我也有同样的问题。你的图书馆信息救了我。如果检查分支源代码,thanksconnector 1.6.0依赖于C*驱动程序3.0.0。我想知道为什么这里需要C*驱动程序3.0.2。对Datastax来说,从3.0.0到3.0.2进行突破性的更改也是一个有趣的决定。