执行连接在多个按键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 在多个列上加入创建重复项

PySpark:执行联合中的列 dtype 更改 [重复]

Pyspark - 如何将多个数据帧的列连接成一个数据帧的列

如何连接两个数据框只有一个相同的列[重复]

数据框在多列上连接,pyspark中的列有一些条件[重复]

在 pyspark sql 的连接中重复使用相同的数据框视图