我有以下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文件?
答案 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)