#scala #join #apache-spark #dataframe
#scala #Присоединиться #apache-spark #фрейм данных
Вопрос:
У меня есть два фрейма данных: df1 и df2
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 |
Как мне это получить?
|--- id--------|---value---|---count---|
| 1 | 23 | 33 |
| 2 | 23 | 23 |
| 3 | 23 | 34 |
| 2 | 25 | 23 |
| 5 | 25 | null |
Я делаю :
val groupedData = df1.join(df2, $"id" === $"idValue", "outer")
Но я не вижу последнего столбца в GroupedData. Это правильный способ сделать? Или я делаю что-то не так?
Ответ №1:
Из вашего ожидаемого результата вам нужно ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ.
val groupedData = df1.join(df2, $"id" === $"idValue", "left_outer").
select(df1("id"), df1("count"), df2("count")).
take(10).foreach(println)