2016-06-27 13 views
5

ho le seguenti due frame di dati:pyspark: merge (esterno-join) di due frame di dati

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 

e

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 

e spero di ottenere il new_DF come

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 

Ciò potrebbe essere ottenuto mediante operazioni sul quadro dati? Grazie!

risposta

8

provare questo:

new_df = df1.join(df2, on=['field_B', 'field_C', 'field_D'], how='left_outer') 
Problemi correlati