使用Spark Dataframe的函数when
,可以只替换特定列中的null值,而不对整个dataframe进行更改。具体方法如下:
from pyspark.sql.functions import when
# 假设我们有一个名为df的dataframe,其中包含两列:name和age
df.show()
# +----+----+
# |name| age|
# +----+----+
# | Tom| 30|
# |null| 25|
# | Bob|null|
# +----+----+
# 仅替换age列中的null值
df = df.withColumn("age", when(df["age"].isNull(), 0).otherwise(df["age"]))
df.show()
# +----+---+
# |name|age|
# +----+---+
# | Tom| 30|
# |null| 25|
# | Bob| 0|
# +----+---+
在上面的示例中,我们使用when
函数将null值替换为0,仅在age列中进行更改,而不更改name列。