pyspark JSON字段,从CSV读取,并检测结尾没有花括号的值

bkhjykvo  于 2023-08-02  发布在  Spark
关注(0)|答案(1)|浏览(124)

我在CSV文件中有一个JSON字段,它有好值和坏值。
错误的值看起来像(注意:缺少结尾大括号):

"{'Id': '1', 'fruit': ['banana', 'grape', 'orange'], 'business': ""Publix""

字符串
vs
好的值看起来像:

{'Id': '3', 'fruit': ['peach', 'orange'], 'business': 'Aldi}


我需要使用PySpark来识别这个JSON字段中缺少花括号的所有行。
如何读取这个有问题的JSON字段并使用ea的最后一个值创建一个新字段。例如,使用示例1:

Last Value
""Publix""


我尝试过的:

df.withColumn("col1", F.to_json(F.col("col1")))\
  .show(truncate=False)


这给了我一个错误:cannot resolve 'to_json(列1 )' due to data type mismatch: Input type string must be a struct, array of structs or a map or array of map.;;

fjnneemd

fjnneemd1#

解决了我自己的问题。
给定错误的JSON文件,您希望在导入时将其格式化为CSV,然后执行以下操作:

df = spark.read.format("csv").option("header", "true").option("escape", '"').load("etc.csv")

字符串
希望这对外面的人有帮助!:)
编辑:option(“escape”,'“')是个技巧。

相关问题