Dołącz dwa zestawy danych w Mapreduce / Hadoop
Czy ktoś wie, jak zaimplementować operację Natural-Join między dwoma zestawami danych w Hadoop?
Dokładniej, oto co dokładnie muszę zrobić:
Mam dwa zestawy danych:
informacja punktowa, która jest przechowywana jako (numer_płytki, punkt_id: punkt_info), jest parą klucz-wartość 1: n. Oznacza to, że dla każdego numeru_płytki może być kilka point_id: point_info
Informacje o linii, które są przechowywane jako (numer_płytki, id_linii: line_info), jest to ponownie para klucz-wartość 1: m, a dla każdego numeru_płytki może być więcej niż jeden line_id: line_info
Jak widać liczby_płytki są takie same między dwoma zestawami danych. teraz naprawdę potrzebuję połączyć te dwa zestawy danych w oparciu o każdy numer_płytki. Innymi słowy dla każdego numeru_płytki, mamy n point_id: point_info i m line_id: line_info. Chcę połączyć wszystkie pary point_id: point_info ze wszystkimi parami line_id: line_info dla każdego numeru_płytki
Aby wyjaśnić, oto przykład:
Dla par punktów:
(tile0, point0)
(tile0, point1)
(tile1, point1)
(tile1, point2)
dla par linii:
(tile0, line0)
(tile0, line1)
(tile1, line2)
(tile1, line3)
chcę:
dla płytki 0:
(tile0, point0:line0)
(tile0, point0:line1)
(tile0, point1:line0)
(tile0, point1:line1)
dla płytki 1:
(tile1, point1:line2)
(tile1, point1:line3)
(tile1, point2:line2)
(tile1, point2:line3)