Spark + Play JSON依赖冲突

时间:2018-01-22 17:08:32

标签: json scala apache-spark playframework

我目前正在尝试从我的RDD对象解析json,为此我打算使用Play Json库。 但是,一旦我尝试运行我的代码,我就会收到以下错误:

  

不兼容杰克逊版本:2.8.9

我想知道是否有办法解决这个问题,同时仍然使用这两个库,或者我是否必须更改我的json库并选择其他内容?

我目前的版本如下:

Current external libraries

我也在使用IntelliJ IDEA

提前致谢。

2 个答案:

答案 0 :(得分:2)

你有没有理由使用play框架解析Spark中的JSON?我什么都想不到。 Spark可以在不需要Play框架的情况下处理JSON。

事实上,您遇到的问题恰恰是由Play杰克逊版本与Spark使用的版本之间的冲突引起的。

如果您正在阅读JSON数据,则可以改为:

  • 直接使用val peopleDF = spark.read.json(path)
  • 之类的内容读取JSON文件
  • 如果您已经有一个RDD并且需要从一个或多个字段解析JSON,那么您可以使用Spark API文档中可以找到here的函数from_json等。

我不知道哪一个最适合,因为你没有包含任何示例代码。

答案 1 :(得分:0)

如果您不打算通过使用play-json解析或序列化来浪费您的CPU,我建议使用最新的jackson-module-scala

Herebenchmarks的结果,与jackson-module-scala相比,play-json显示速度下降10倍。