Apache Spark解析分裂记录的json
问题描述:
据我所知,Apache spark要求json文件在一个字符串中只有一条记录。我有一个像这样的字段json文件拆分:Apache Spark解析分裂记录的json
{"id": 123,
"name": "Aaron",
"city": {
"id" : 1,
"title": "Berlin"
}}
{"id": 125,
"name": "Bernard",
"city": {
"id" : 2,
"title": "Paris"
}}
{...many more lines
...}
我该如何使用Spark解析它?我需要预处理器还是可以提供自定义分离器?
答
Spark使用以换行符分隔来区分记录。这意味着当使用标准的json阅读器时,你需要每行有一条记录。
你可以做这样的事情在这个答案转换:https://stackoverflow.com/a/30452120/1547734
的基本想法是读作wholeTextFiles然后将其加载到一个JSON读者这会分析它,并flatmap结果。
当然,这里假设文件足够大,可以一次存储并解析一个文件。否则,你会需要更复杂的解决方案。
什么是您使用的Spark版本? – mrsrinivas
@mrsrinivas 1.6.2。有关系吗? – Aguinore
不确定。但想到根据Spark版本添加答案。 – mrsrinivas