根据通用列将数据框与另一个列连接

时间:2018-11-14 14:11:44

标签: python apache-spark pyspark pyspark-sql

我有两个pyspark数据帧:

|  A  |  B  |  C  |
| 21  | 999 | 1000|
| 22  | 786 | 1978|
| 23  | 345 | 1563|

|  A  |  D  |  E  |
| 21  | aaa | a12 |
| 22  | bbb | b43 |
| 23  | ccc | h67 |

所需结果:

|  A  |  B  |  C  |  E  |
| 21  | 999 | 1000| a12 |
| 22  | 786 | 1978| b43 |
| 23  | 345 | 1563| h67 |

我尝试使用连接,甚至df1.join(df2.E, df1.A == df2.A)都无效。

2 个答案:

答案 0 :(得分:1)

我认为这段代码可以满足您的要求:

joinedDF = df1.join(df2.select('A', 'E'), ['A'])

答案 1 :(得分:1)

当您尝试使用函数join连接2个数据框时,它需要3个参数。

  1. arg-1:您需要加入的另一个数据框。
  2. arg-2:需要根据其连接数据框的列。
  3. arg-3:要执行的联接类型。默认情况下是其内部联接。

PFB示例代码。

df1.join(df2, df1.id == df2.id, 'outer')

您可以找到更多详细信息here

此致

Neeraj