通过选择不为空的特定值在 pyspark 中创建一个新列
Posted
技术标签:
【中文标题】通过选择不为空的特定值在 pyspark 中创建一个新列【英文标题】:Creating a new column in pyspark by selecting specific values which are not null 【发布时间】:2021-12-20 16:22:04 【问题描述】:在 pyspark 中,我的目标是创建一个新列,在其中我选择一个不为空的列值(从 2 列中)。我曾尝试使用以下代码,但这并不完全奏效。有人有更好的解决方案吗?
def spark_define_column(df):
df.where(col("col_1").isNull()) and df.where(col("col_2").isNotNull()):
return col("col_2")
【问题讨论】:
【参考方案1】:您可以应用coalesce
来查找列中的第一个非空值。
def spark_define_column(df):
return F.coalesce(col("col_1"), col("col_2"))
【讨论】:
谢谢,数据框和要创建的列不应该在函数中也注明吗? @mainman 我重用了,你共享的方法,当然你已经提取了你想要比较的列作为函数 arg 并使用它以上是关于通过选择不为空的特定值在 pyspark 中创建一个新列的主要内容,如果未能解决你的问题,请参考以下文章