Python Pyspark dataframe使用默认值左连接

Python Pyspark dataframe使用默认值左连接,python,pandas,dataframe,join,Python,Pandas,Dataframe,Join,我有两个数据帧df1和df2。我正在尝试加入(左加入) df1: df2: Final=df1.join(df2,on=['ID'],how='left') 但是如果Place值为空,我想用Name列值填充Place列 预期产出: Name ID Age Place AA 1 23 Germany BB 2 49 BB CC 3 76 H

我有两个数据帧df1和df2。我正在尝试加入(左加入)

df1:

df2:

Final=df1.join(df2,on=['ID'],how='left')

但是如果
Place
值为空,我想用
Name
列值填充
Place

预期产出:

    Name     ID       Age    Place
    AA       1        23     Germany
    BB       2        49     BB
    CC       3        76     Holland
    DD       4        27     DD
    EE       5        43     EE
    FF       6        34     FF
    GG       7        65     India

我能想到的解决方案是,一旦连接完成,我可以检查
Place
的值,如果值为null,则替换为
Name
。请让我知道,如果有任何其他优雅的解决办法。谢谢。

是的,谢谢。经过一些搜索后,管理使用,如下面的链接所示

from pyspark.sql.functions import coalesce
df1.withColumn("Place",coalesce(df1.Place,df.Name)) 

是的,谢谢。经过一些搜索后,管理使用,如下面的链接所示

from pyspark.sql.functions import coalesce
df1.withColumn("Place",coalesce(df1.Place,df.Name)) 

试试这个:
final=df1.merge(df2,on='ID',how='left')。assign(Place=lambda x:x['Place'])。fillna(x['Name'])
是的,谢谢。很抱歉,我忘了提到我正在pyspark数据帧中尝试这样做<代码>合并和
分配
不适用于pyspark数据帧。谢谢。试试这个:
final=df1。合并(df2,on='ID',how='left')。分配(Place=lambda x:x['Place'])。填充(x['Name'])
是的,谢谢。很抱歉,我忘了提到我正在pyspark数据帧中尝试这样做<代码>合并和
分配
不适用于pyspark数据帧。谢谢
    Name     ID       Age    Place
    AA       1        23     Germany
    BB       2        49     BB
    CC       3        76     Holland
    DD       4        27     DD
    EE       5        43     EE
    FF       6        34     FF
    GG       7        65     India
from pyspark.sql.functions import coalesce
df1.withColumn("Place",coalesce(df1.Place,df.Name))