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

标签 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 解析它?我需要预处理器还是可以提供自定义拆分器?

最佳答案

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

您可以通过执行此答案中类似的操作来转换:https://stackoverflow.com/a/30452120/1547734

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

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

关于json - Apache spark 解析带有拆分记录的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42478932/

相关文章:

javascript - 在 js 对象与 xml 或 json 中存储大量文本

ruby-on-rails - 将数据从 JSON api 保存到 Ruby on Rails DB

java - Spark 错误 - 不支持的类文件主要版本

python - Spark java.lang.VerifyError

apache-spark - 根据pyspark中的条件从数据框中删除行

json - 以 Angular 将行追加到现有数据列表

java - 将 HashMap 转换为 JSONArray,值无法正确输入

java - Scala Spark MLLib NoClassDefFoundError

java - 如何使用 spark 处理一系列 hbase 行?

java - dialogflow权限错误: "Not allowed to ask for PII in apps designed for family."