首页 > 解决方案 > 如果行匹配,PySpark 设置列值等于另一个数据帧值

问题描述

您好我想检查一个火花数据框列值并根据检查行名是否与另一个数据框行匹配来设置它。

例子:

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

标签: pythonapache-sparkdataframepyspark

解决方案


您需要加入才能执行此任务:

## 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)

推荐阅读