如何解析没有SparkSQL的JSON文件?

时间:2017-05-16 13:41:34

标签: json scala apache-spark

我有以下JSON文件。

{
  "reviewerID": "ABC1234",
  "productID": "ABCDEF",
  "reviewText": "GOOD!",
  "rating": 5.0,
},
{
  "reviewerID": "ABC5678",
  "productID": "GFMKDS",
  "reviewText": "Not bad!",
  "rating": 3.0,
}

我想在没有SparkSQL的情况下解析并使用JSON解析器。

我想要的解析结果是textfile。

ABC1234::ABCDEF::5.0
ABC5678::GFMKDS::3.0

如何使用spark scala中的json解析器解析json文件?

1 个答案:

答案 0 :(得分:1)

tl; dr Spark SQL支持每个文件或每行一个JSON格式的JSON。如果您想解析可以一起出现在一个文件中的多行JSON,您必须编写自己的Spark支持,因为它当前可能

一个可能的解决方案是询问“编写者”(将文件编写得更好并且每个文件保存一个JSON的过程),这将使您的生活更加甜蜜。

如果这对您没有多大帮助,您必须使用解析器进行mapPartitions转换,并以某种方式自行解析。

val input: RDD[String] = // ... load your JSONs here
val jsons = jsonRDD.mapPartitions(json => // ... use your JSON parser here)