结构列中的示例输入值 -
{"quantity_unit":"Sqm","u_quantity":"6", "capacity":null}
所需输出 -
{"quantity_unit":"Sqm","u_quantity":"6"}
我尝试使用下面的代码,但它将类型转换为字符串。我想保留类型来构造自身
df1 = df_cleaned.select(to_json(df_cleaned.new_col).alias("jsoncol"))
display(df1)
由于 Spark 中
struct
类型的工作方式,您所要求的内容不可能直接实现。 struct
数据类型旨在在所有行中维护一致的架构,这意味着保留所有定义的字段(包括具有 null
值的字段)以确保结构保持统一。
但是,如果您的目标是动态删除具有
null
值的字段,您可以考虑使用 map
类型。映射允许灵活的键值对,您可以轻松过滤掉具有 null
值的条目,并且如果适合您的用例,它可以是 string, string
的映射。
这样,您可以排除
null
值,同时仍保持剩余数据不变。