我有 json 文件,其中每一行都是一个 json 对象,其中包含多个字符串和一个字典。{"str_a":"blah","str_b":"blah","dict_obj":{}}
字典对象通常是"dict_obj":{}
,偶尔包含值,并且很少会从所有 json 行中丢失,例如:
{"str_a":"blah","str_b":"blah"}
{"str_a":"blah","str_b":"blah"}
{"str_a":"blah","str_b":"blah"}
我想确保该字段存在于 json 输出中。如果我添加一个空列,则打印输出如下所示:{"dict_object":null}
但是,如果批次中的单个记录包含"dict_obj":{}
字段,那么保存的json包含"dict_obj":{}
.
到目前为止我尝试过的事情导致"dict_obj":null
:
df.withColumn("dict_object", F.lit(None))
df.withColumn("dict_object",
F.lit(None).cast(MapType(StringType(), StringType()))
)
df.withColumn("dict_object",
F.lit(None).cast(StructType([StructField("", StringType(), True)]))
)
我如何复制该字段以便输出包含"dict_obj":{}
?