Scala - Соединить кадры данных с отношением 1 к n - PullRequest
0 голосов
/ 05 мая 2020

У меня есть два фрейма данных

Фрейм данных - Дом (адрес, номер, почтовый индекс)

adress 1, 28, 04030
adress 2, 01, 25040

Фрейм данных - Люди (имя, адрес, возраст)

Miki , adress 1, 15
Sterling , adress 2, 20
Archer, adress 2, 25

Мне нужно объединить их обоих в третий фрейм данных - Filled_HouseHouse (адрес, номер, почтовый индекс, member1, member2, member3, member4), например

 adress 1, 28, 04030, Miki, null, null, null
 adress 2, 01, 25040, Sterling, Archer, null, null

В Scala + Spark I полагаю, что использование map и group by может быть ответом, но я не нашел правильного выхода.

Спасибо за ваше время!

1 Ответ

0 голосов
/ 05 мая 2020

Используя

val peopleUnified = people.groupBy("address").agg(collect_list("name")

Я получил

adress 1, Miki
adress 2, [Sterling, Archer]

Итак, следующим шагом будет разделение созданного списка и заполнение полей членов объединением

...