Scala 将数据从Spark保存到Cassandra会导致java.lang.ClassCastException

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

我试图使用RDD的
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进行突破性的更改也是一个有趣的决定。