我想用Spark外连接两个数据框:
df1 columns: first_name, last, address
df2 columns: first_name, last_name, phone_number
我的钥匙是first_name and df1.last==df2.last_name
我希望最终的数据集架构包含以下列:
first_name, last, last_name, address, phone_number
这意味着如果列名相同,我想“合并”输出数据框中的列,如果不相同,我想将两列分开。
我无法在一个联接中执行此操作,但只能执行两个联接,例如:
df1.join(df2,'first_name','outer').join(df2,[df1.last==df2.last_name],'outer')
答案 0 :(得分:0)
通过使用具有多个元素的联接条件,您应该能够一步完成联接:
join_cond = [df1.first_name == df2.first_name, df1.last == df2.last_name]
df_join = df1.join(df2, join_cond, 'outer')