两个 join 语法的区别(pyspark)

问题描述 投票:0回答:1

我有一个关于 pyspark 中 join 的两种语法差异的问题,

例如,我有这两个 df

DF1

ID  NAME
1   OLIVER
2   MICHAEL
3   JUSTIN

DF2

ID  address   
1   BRAZIL 
1   FRANCE
2   PORTUGAL    
2   ARGENTINA  
3   MEXICO 

通常我使用:

df1.join(df2, (col('df1.ID') == col('df2.ID')), 'left')

但有时我看到人们使用:

df1.join(df2, 'ID', 'left')

所以,我的问题是,这两个代码有区别吗?

我试图理解连接的第一个和第二个语法的区别。

join pyspark
1个回答
0
投票

如果您要加入两个数据框中具有相同名称的列,则使用第二个选项会更清晰。 如果您要加入具有不同名称的列,则可以使用第一个选项。例如,如果在 df1 中,ID 列被命名为 USER_ID,并且您不希望重命名该列,则应加入为:

df1.join(df2, (col('df1.USER_ID') == col('df2.ID')), 'left')

df1.join(df2, df1.USER_ID == df2.ID, 'left')
© www.soinside.com 2019 - 2024. All rights reserved.