簡體   English   中英

如果行匹配,PySpark設置列值等於另一個數據框值

[英]PySpark Set Column value equal to another dataframe value if rows match

嗨,我想檢查spark數據框列值,並基於檢查行名是否與另一個數據框行匹配來設置它。

例:

df1:
average name
3.5      n1
1.2      n2
4.2      n3

df2:
name    
n1     
n1        
n1    
n2
n3
n1
n2
n3
n3

df_i_want:
average name
3.5      n1
3.5      n1
3.5      n1
1.2      n2
4.2      n3
3.5      n1
1.2      n2
4.2      n3
4.2      n3

您需要加入才能執行此任務:

## join both data on name
df3 = df2.join(df1, on='name',how='left')

# change column sequence
df3 = df3.select('average','name')

# order by name values
df3 = df3.orderBy('name', ascending=True)

您需要做的就是Join

您可以達到如下結果。

將數據框df2name上的df1 ,然后選擇所需的列順序

df3 = df2.join(df1, on = 'name').select('average', 'name')

上面的代碼段應為您提供理想的結果

暫無
暫無

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

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