![](/img/trans.png)
[英]How can I match two rows in a pyspark dataframe when the value in a column in a row matches the value in another column in another row?
[英]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
您可以達到如下結果。
將數據框df2
與name
上的df1
,然后選擇所需的列順序
df3 = df2.join(df1, on = 'name').select('average', 'name')
上面的代碼段應為您提供理想的結果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.