Apache spark解析带有拆分记录的json

时间:2017-02-27 06:11:14

标签: json apache-spark

据我所知,Apache spark需要json文件在一个字符串中只有一条记录。我有一个像这样的字段json文件分割:

{"id": 123,
"name": "Aaron",
"city": {
    "id" : 1,
    "title": "Berlin"
}}
{"id": 125,
"name": "Bernard",
"city": {
    "id" : 2,
    "title": "Paris"
}}
{...many more lines
...}

如何使用Spark解析它?我需要预处理器还是可以提供自定义分离器?

1 个答案:

答案 0 :(得分:2)

Spark使用换行符来区分记录。这意味着当使用标准的json阅读器时,每行需要一条记录。

您可以通过执行以下答案进行转换:https://stackoverflow.com/a/30452120/1547734

基本思想是将整个文本读取,然后将其加载到json阅读器,该阅读器将对其进行解析并对结果进行平面映射。

当然,这假设文件足够大,可以在内存中一次解析一个。否则你需要更复杂的解决方案。