【问题标题】:Saving data from Spark to Cassandra results in java.lang.ClassCastException将数据从 Spark 保存到 Cassandra 会导致 java.lang.ClassCastException
【发布时间】:2016-06-26 15:26:06
【问题描述】:

我正在尝试使用 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。如果还有什么我可以提供的帮助调试的,请告诉我。

【问题讨论】:

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


    【解决方案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 的这个配置示例可以正常工作。

    【讨论】:

    • 谢谢,这有助于解决问题。我遇到的主要问题之一是番石榴版本冲突,所以如果将来有人遇到这个错误,我会调查一下。如果不将代码放入不同的项目中,我无法解决它,但我想有一种方法可以不这样做(也许是阴影?我对此知之甚少......)。
    • @grzesiekw 我也有同样的问题。你的图书馆信息救了我。谢谢
    • 如果您检查分支源,连接器 1.6.0 取决于 C* 驱动程序 3.0.0。我想知道为什么这里明确需要 C* 驱动程序 3.0.2。此外,Datastax 做出从 3.0.0 到 3.0.2 的重大更改也是一个有趣的决定。
    猜你喜欢
    • 2016-05-02
    • 2016-05-01
    • 2016-01-30
    • 1970-01-01
    • 2020-08-24
    • 2020-03-18
    • 1970-01-01
    • 2020-02-23
    • 2015-05-10
    相关资源
    最近更新 更多