两种join语法的区别(pyspark)

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

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

例如,我有这两个数据框

DF1

身份证 姓名
1 奥利弗
2 迈克尔
3 贾斯汀

DF2

身份证 地址
1 巴西
1 法国
2 葡萄牙
2 阿根廷
3 墨西哥

我通常使用:

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

但有时我看到人们使用:

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

那么,我的问题是,这两个代码有什么区别?

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

python dataframe 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.