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

时间:2016-06-23 18:19:32

标签: scala apache-spark spark-cassandra-connector

我尝试使用saveToCassandra将数据从Spark保存到Scala中的Cassandra用于RDD或使用数据帧保存(两者都会导致相同的错误)。完整的信息是:

  

java.lang.ClassCastException:   com.datastax.driver.core.DefaultResultSetFuture无法强制转换为   com.google.common.util.concurrent.ListenableFuture

我已经跟着代码here,但似乎仍然出错。

我使用的是Cassandra 3.6,Spark 1.6.1和spark-cassandra-connector 1.6。如果我能提供其他任何帮助调试的信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

我有类似的异常并在更改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"
)

使用5-minute quick start guide中的此配置示例可以正常工作。