簡體   English   中英

Pyspark 數據框使用默認值左連接

[英]Pyspark dataframe left join with default values

我有兩個數據框 df1 和 df2。 我正在嘗試加入(左加入)

df1:

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

df2:

ID      Place
1       Germany
3       Holland
7       India

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

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

但如果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

解決方案,我能想到的是,一旦join完成,我可以檢查Place的值,如果它為空就用Name替換。 請讓我知道是否有任何其他優雅的解決方案。 謝謝。

是啊謝謝。 經過一些搜索設法使用如下鏈接所示

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

另一個線程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM