Pyspark 数据框 - 删除结构列中具有空值的键

问题描述 投票:0回答:1

结构列中的示例输入值 -

{"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)
json dataframe pyspark
1个回答
0
投票

由于 Spark 中

struct
类型的工作方式,您所要求的内容不可能直接实现。
struct
数据类型旨在在所有行中维护一致的架构,这意味着保留所有定义的字段(包括具有
null
值的字段)以确保结构保持统一。

但是,如果您的目标是动态删除具有

null
值的字段,您可以考虑使用
map
类型。映射允许灵活的键值对,您可以轻松过滤掉具有
null
值的条目,并且如果适合您的用例,它可以是
string, string
的映射。

这样,您可以排除

null
值,同时仍保持剩余数据不变。

© www.soinside.com 2019 - 2024. All rights reserved.