У меня есть два кадра данных 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) безрезультатно.
Ответ 1 · рейтинг 2 · Ali AzG
Я думаю, что этот код делает то, что вы хотите:
joinedDF = df1.join(df2.select('A', 'E'), ['A'])
Ответ 2 · рейтинг 2 · neeraj bhadani
Когда вы пытаетесь присоединиться к 2 кадрам данных, используя функцию join, она принимает 3 аргумента.
- arg-1 : еще один фрейм данных, к которому вам нужно присоединиться.
- arg-2: столбцы, на основе которых вам нужно присоединиться к кадрам данных.
- arg-3 : тип соединения, которое вы хотите выполнить. по умолчанию его внутреннее соединение.
Пример кода PFB.
df1.join(df2, df1.id == df2.id, 'outer')
Подробнее см. здесь.
С уважением,
Нирадж