Python 如果行匹配,PySpark将列值设置为另一个数据帧值
嗨,我想检查spark dataframe列值,并根据检查行名称是否与另一个dataframe行匹配来设置它 例如:Python 如果行匹配,PySpark将列值设置为另一个数据帧值,python,apache-spark,dataframe,pyspark,Python,Apache Spark,Dataframe,Pyspark,嗨,我想检查spark dataframe列值,并根据检查行名称是否与另一个dataframe行匹配来设置它 例如: 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
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 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)
你所需要做的就是加入
您可以实现如下结果
将数据框df2
与name
上的df1
连接,然后选择所需列的顺序
df3 = df2.join(df1, on = 'name').select('average', 'name')
上面的代码片段应该会为您提供所需的结果您所需要做的就是加入Join
您可以实现如下结果
将数据框df2
与name
上的df1
连接,然后选择所需列的顺序
df3 = df2.join(df1, on = 'name').select('average', 'name')
上面的代码片段应该会给你想要的结果为什么你们会投反对票请解释?为什么你们会投反对票请解释?