pyspark: объединить (внешнее соединение) два фрейма данных

У меня есть следующие два фрейма данных:

DF1:

    Id | field_A | field_B | field_C | field_D
     1 |   cat   |  12     |   black | 11
     2 |   dog   | 128     |   white | 19
     3 |   dog   |  35     |  yellow | 20
     4 |   dog   |  21     |   brown |  4
     5 |  bird   |  10     |    blue |  7
     6 |   cow   |  99     |   brown | 34

и

DF2:

    Id | field_B | field_C | field_D | field_E
     3 |  35     |  yellow | 20      |   123   
     5 |  10     |    blue |  7      |   454   
     6 |  99     |   brown | 34      |   398   

И я надеюсь получить new_DF как

    Id | field_A | field_B | field_C | field_D | field_E
     1 |   cat   |  12     |   black | 11      |
     2 |   dog   | 128     |   white | 19      |
     3 |   dog   |  35     |  yellow | 20      |  123
     4 |   dog   |  21     |   brown |  4      |  
     5 |  bird   |  10     |    blue |  7      |  454
     6 |   cow   |  99     |   brown | 34      |  398

Может ли это быть достигнуто с помощью операций с фреймами данных? Спасибо!


person Edamame    schedule 27.06.2016    source источник


Ответы (1)


попробуй это:

new_df = df1.join(df2, on=['field_B', 'field_C', 'field_D'], how='left_outer')
person MaxU    schedule 27.06.2016
comment
Как будет выглядеть код, если вам нужно присоединиться к идентификатору и выбрать поле A или B из DF1 для DF2? - person BI Dude; 14.08.2019