2016-10-06 2 views
1

I havce zwei Datenrahmen: DF1 und DF2vorgehens OUTER JOIN in scala

df1

|--- id---|---value---| 
| 1 | 23  | 
| 2 | 23  | 
| 3 | 23  | 
| 2 | 25  | 
| 5 | 25  | 

df2

|-idValue-|---count---| 
| 1 | 33  | 
| 2 | 23  | 
| 3 | 34  | 
| 13 | 34  | 
| 23 | 34  | 

Wie kann ich das bekommen?

|--- id--------|---value---|---count---| 
| 1   | 23  | 33  | 
| 2   | 23  | 23  | 
| 3   | 23  | 34  | 
| 2   | 25  | 23  | 
| 5   | 25  | null | 

ich tue:

val groupedData = df1.join(df2, $"id" === $"idValue", "outer") 

Aber ich habe nicht die letzte Spalte in der groupedData sehen. Ist das richtig? Oder mache ich etwas falsch?

Antwort

3

Von Ihrer erwarteten Ausgabe benötigen Sie LEFT OUTER JOIN.

val groupedData = df1.join(df2, $"id" === $"idValue", "left_outer"). 
     select(df1("id"), df1("count"), df2("count")). 
     take(10).foreach(println)