执行连接在多个按键pyspark只有非重复相同的列名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了执行连接在多个按键pyspark只有非重复相同的列名相关的知识,希望对你有一定的参考价值。
我要外连接两个dataframes星火:
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')
答案
你应该能够做到在一个单一的步骤,通过使用一个连接有多个要素条件的加盟:
join_cond = [df1.first_name == df2.first_name, df1.last == df2.last_name]
df_join = df1.join(df2, join_cond, 'outer')
以上是关于执行连接在多个按键pyspark只有非重复相同的列名的主要内容,如果未能解决你的问题,请参考以下文章
Pyspark 与 AWS Glue 在多个列上加入创建重复项