根据公共列将数据框与另一个列连接起来
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 个参数。
- arg-1 : 您需要加入的另一个数据框。
- arg-2 : 您需要根据其加入数据框的列。
- arg-3 :您要执行的连接类型。默认情况下它的内部连接。
PFB 示例代码。
df1.join(df2, df1.id == df2.id, 'outer')
您可以找到更多详细信息 here。
此致,
尼拉吉
我有两个 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 个参数。
- arg-1 : 您需要加入的另一个数据框。
- arg-2 : 您需要根据其加入数据框的列。
- arg-3 :您要执行的连接类型。默认情况下它的内部连接。
PFB 示例代码。
df1.join(df2, df1.id == df2.id, 'outer')
您可以找到更多详细信息 here。
此致,
尼拉吉