【发布时间】:2018-07-08 06:37:25
【问题描述】:
TL;DR:当我将 Spark DataFrame 转储为 json 时,我总是会得到类似的结果
{"key1": "v11", "key2": "v21"}
{"key1": "v12", "key2": "v22"}
{"key1": "v13", "key2": "v23"}
这是无效的 json。我可以手动编辑转储文件以获取可以解析的内容:
[
{"key1": "v11", "key2": "v21"},
{"key1": "v12", "key2": "v22"},
{"key1": "v13", "key2": "v23"}
]
但我很确定我错过了一些可以让我避免手动编辑的东西。我只是现在不知道。
更多详情:
我有一个org.apache.spark.sql.DataFrame,我尝试使用以下代码将其转储到 json:
myDataFrame.write.json("file.json")
我也尝试过:
myDataFrame.toJSON.saveAsTextFile("file.json")
在这两种情况下,它最终都会正确转储每一行,但它缺少行之间的分隔逗号以及方括号。 因此,当我随后尝试解析此文件时,我使用的解析器会侮辱我,然后失败。
如果我能了解如何转储有效的 json,我将不胜感激。 (阅读DataFrameWriter 的文档并没有给我任何有趣的提示。)
【问题讨论】:
标签: json apache-spark apache-spark-sql spark-dataframe