выполнять объединения в pyspark с несколькими ключами, дублируя только не идентичные имена столбцов - PullRequest
0 голосов
/ 02 февраля 2019

Я хочу внешнее соединение двух фреймов данных с помощью Spark:

df1 columns: first_name, last, address 
df2 columns: first_name, last_name, phone_number

Мои ключи first_name and df1.last==df2.last_name

Я хочу, чтобы окончательная схема набора данных содержала следующие столбцы:

first_name, last, last_name, address, phone_number

Это означает, что если имена столбцов идентичны, я хочу объединить столбцы в выходном фрейме данных, а если они не идентичны, я хочу, чтобы оба столбца были отдельными.

Я не могу сделать это в одном соединении, но только в двух, например: df1.join(df2,'first_name','outer').join(df2,[df1.last==df2.last_name],'outer')

1 Ответ

0 голосов
/ 02 февраля 2019

Вы сможете выполнить объединение за один шаг, используя условие объединения с несколькими элементами:

join_cond = [df1.first_name == df2.first_name, df1.last == df2.last_name]
df_join = df1.join(df2, join_cond, 'outer')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...