如何在格式无效的 JSON 文件中删除一行
Posted
技术标签:
【中文标题】如何在格式无效的 JSON 文件中删除一行【英文标题】:How to drop a row in a JSON file with invalid format 【发布时间】:2022-01-07 21:30:42 【问题描述】:我目前正在从事一项 scala 作业,该作业会将 JSON 文件中的数据提取到 Hive 表中,但我确实遇到了一些具有无效格式的行/条目的文件。示例如下:
["name":"John", "age":30, "address":"15 yemen road Yemen",
"name":"John", "age":30, "address":"",15 yemen road Yemen"]
第二个条目上的地址是导致失败的原因,我们的想法是删除该行。我已经尝试添加DROPMALFORMED
模式但仍然无法正常工作。
【问题讨论】:
【参考方案1】:您可能希望删除方括号并将输入转换为 NLJSON 格式:每行一个 JSON 对象。
"name":"John", "age":30, "address":"15 yemen road Yemen"
"name":"John", "age":30, "address":"",15 yemen road Yemen"
使用该输入,Spark 设置 DROPMALFORMED 将删除错误的行,而现在它将删除整个数组。
参照。 Spark DataFrameReader
"加载一个 JSON 文件(每行一个对象)并将结果作为 DataFrame 返回"
【讨论】:
以上是关于如何在格式无效的 JSON 文件中删除一行的主要内容,如果未能解决你的问题,请参考以下文章
如何从 venv 中删除无效的需求? (pycharm?)[重复]
在 pyspark 的 StructStreaming 中;如何将 DataFrame 中的每一行(json 格式的字符串)转换为多列