Присоединяйтесь к фрейму данных со столбцом из другого на основе общего столбца.

У меня есть два кадра данных 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) безрезультатно.


person Qubix    schedule 14.11.2018    source источник
comment
Возможный дубликат pandas: объединить (объединить) два фрейма данных на нескольких столбцы   -  person Sotos    schedule 14.11.2018


Ответы (2)


Я думаю, что этот код делает то, что вы хотите:

joinedDF = df1.join(df2.select('A', 'E'), ['A'])
person Ali AzG    schedule 14.11.2018

Когда вы пытаетесь присоединиться к 2 кадрам данных, используя функцию join, она принимает 3 аргумента.

  1. arg-1 : еще один фрейм данных, к которому вам нужно присоединиться.
  2. arg-2: столбцы, на основе которых вам нужно присоединиться к кадрам данных.
  3. arg-3 : тип соединения, которое вы хотите выполнить. по умолчанию его внутреннее соединение.

Пример кода PFB.

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

Подробнее см. здесь.

С уважением,

Нирадж

person neeraj bhadani    schedule 19.11.2018