玩!和Spark不兼容的Jackson版本

时间:2017-01-04 12:58:49

标签: apache-spark playframework sbt

运行Spark 2.1时遇到问题! 2.5.9。

我得到以下运行时异常:

dependencyOverrides ++= Set("com.fasterxml.jackson.core" % "jackson-databind" % "2.4.4")

在以前版本的Spark(1.6)中,我设法在我的dependencyOverrides文件中禁止添加此错误:

{{1}}

但它不能与Spark 2一起使用。我试图将{{1}}中使用的版本改为2.7.2和2.8.5,但我不知道应该使用哪个版本以及为什么

任何线索都会非常感激;)

3 个答案:

答案 0 :(得分:15)

在dependencyOverrides中使用版本2.6.x可以工作(我仍然不知道是否有其他方法可以找到一个有效的版本而不是一个接一个地测试一个版本。)

答案 1 :(得分:0)

我在Spark 2.4.0中遇到了完全相同的问题。对我有用的依赖项替代是:

dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.9.8"

我相信同样的替代也适用于2.4.1。

答案 2 :(得分:0)

我在Spark 2.4.4play-json 2.8.1上遇到了同样的问题,因此在maven存储库中寻找了Spark依赖项:https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.12/2.4.4;在这里可以看到所需的jackson-databind的版本。最后,我在build.sbt文件中添加了以下行:

dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % "2.6.7.1"

这意味着play-json现在使用的是我不太喜欢的jackson-databind的旧版本,但它对我有用。