【问题标题】:Spark and Java: Error ClassCastExceptionSpark 和 Java:错误 ClassCastException
【发布时间】:2017-11-03 04:18:39
【问题描述】:

我完全按照这个例子 https://github.com/rathboma/hadoop-framework-examples/tree/master/spark 当我尝试运行时,我收到以下消息:

java.lang.ClassCastException: org.apache.spark.api.java.Optional cannot be cast to com.google.common.base.Optional

我不知道如何解决它,因为我是使用 Spark 的新手。 谢谢!! 有什么建议吗?

【问题讨论】:

  • 看来你导入了错误的可选类

标签: java maven hadoop apache-spark


【解决方案1】:

这是因为您使用 Spark 1.x 编译代码,但在 Spark 2.x 集群中运行您的应用程序。您可以更新 pom.xml 以使用相同版本的 Spark 集群,并且可能还需要更新您的代码,因为 2.x 和 1.x 不兼容。

【讨论】:

  • 怎么知道集群版本?
  • 我已使用此文件 spark-2.1.1-bin-without-hadoop.tgz 安装了 Spark 2.1.1,然后,我已将 Spark 与 Hadoop 安装设置为 spark-env.sh 文件在 /usr/local/spark/conf 中(我遵循了这个:spark.apache.org/docs/latest/hadoop-provided.html)。我可以在 pom.xml 中更改这部分吗? org.apache.sparkspark-core_2.102.1.1 它可以工作吗?
  • @cricket_007 打印SparkContext.version
  • @majitux 是的,你需要改变它。但是,您可能还需要更新代码,因为 Spark 2.x 破坏了源代码兼容性。这就是您在使用不同版本时看到 ClassCastException 的原因。
  • @cricket_007 只是因为我碰巧查看了从 com.google.common.base.Optionalorg.apache.spark.api.java.Optional 的更改 :)
猜你喜欢
  • 1970-01-01
  • 2018-02-01
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 2019-07-14
  • 2023-01-05
  • 2023-03-19
  • 2017-03-04
相关资源
最近更新 更多