如何在格式无效的 JSON 文件中删除一行

How to drop a row in a JSON file with invalid format

我目前正在处理一个 scala 作业,它将 JSON 文件中的数据提取到 Hive 表,但我确实遇到了一些 row/entry 格式无效的文件。这是示例:

[{"name":"John", "age":30, "address":"15 yemen road Yemen"},
{"name":"John", "age":30, "address":"",15 yemen road Yemen"}]

第二个条目上的地址是导致失败的原因,我们的想法是只删除该行。我已经尝试添加 DROPMALFORMED 模式但仍然无法正常工作。

您可能想要删除方括号并将您的输入转换为 NLJSON 格式:每行一个 JSON 个对象。

{"name":"John", "age":30, "address":"15 yemen road Yemen"}
{"name":"John", "age":30, "address":"",15 yemen road Yemen"}

使用该输入,Spark 设置 DROPMALFORMED 将删除错误的 ,而现在它将删除整个数组。

比照。 Spark DataFrameReader

"Loads a JSON file (one object per line) and returns the result as a DataFrame"