通过选择不为空的特定值在 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 中创建一个新列的主要内容,如果未能解决你的问题,请参考以下文章

选择 mongoid 中不为空或为空的位置

Firestore 选择不为空的位置

JQ选择值包含字符串且值不为空的对象

jQuery:选择不为空的数据属性?

选择性过滤列值不为空的行 PostgreSQL

按列分组,优先选择另一列不为空的行