【问题标题】:Apache Spark giving error in IntelliJApache Spark 在 IntelliJ 中给出错误
【发布时间】:2017-07-13 21:30:38
【问题描述】:

我已经为 SparkSQL 编写了代码。我使用 Eclipse Neon 运行它。它工作正常。当我转移到 IntelliJ Idea 时,没有运行相同的代码。
这是代码:

SparkSession spark = SparkSession
            .builder()
            .appName("Java Spark Hive Example")
            .master("local[*]")
            .config("hive.metastore.uris", "thrift://localhost:9083")
            .enableHiveSupport()
            .getOrCreate();
spark.sql("select survey_response_value from health").show();

我得到的例外是:
https://justpaste.it/13tsa
请让我知道为什么我会遇到这个问题。我该如何解决这个问题?我应该从一开始就使用 IntelliJ 编写代码还是有任何帮助机制?

【问题讨论】:

标签: java eclipse maven apache-spark intellij-idea


【解决方案1】:

问题是这个异常:

com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.5.1

基本上,Spark 使用 Jackson 版本 2.6.5,但您使用的另一个依赖项将 Jackson 的旧版本 (2.5.1) 放在类路径中。很难说为什么 Eclipse 和 IntelliJ 之间存在不同,但我的猜测是它们构建类路径的方式不同,因此 Eclipse 将正确的版本放在首位。

关于这个错误有几个问题,例如:

对于我来说,使用 Spark 2.x,将以下内容添加到您的 build.sbt 以确保使用正确的版本:

dependencyOverrides ++= Set(
  "com.fasterxml.jackson.core" % "jackson-annotations" % "2.6.5",
  "com.fasterxml.jackson.core" % "jackson-core" % "2.6.5",
  "com.fasterxml.jackson.core" % "jackson-databind" % "2.6.5"
)

【讨论】:

  • 感谢您的回答。它有帮助.. :)
猜你喜欢
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 2017-01-28
相关资源
最近更新 更多