根据公共列将数据框与另一个列连接起来

Join a dataframe with a column from another, based on a common column

我有两个 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 |

我试过使用 join,甚至 df1.join(df2.E, df1.A == df2.A) 都无济于事。

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

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

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

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

PFB 示例代码。

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

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

此致,

尼拉吉