Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: QubixОтветов: 2

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

  • Возможный дубликат pandas: объединить (объединить) два фрейма данных на нескольких столбцы Sotos 14.11.2018

pythonapache-sparkpysparkpyspark-sql

Ответы

Ответ 1 · рейтинг 2 · Ali AzG

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

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

Ответ 2 · рейтинг 2 · neeraj bhadani

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

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

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

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

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

С уважением,

Нирадж

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы