Verknüpfung zweier Datensätze in Mapreduce / Hadoop

Weiß jemand, wie der Natural-Join-Vorgang zwischen zwei Datasets in Hadoop implementiert wird?

Genauer gesagt, hier ist, was ich genau tun muss:

Ich habe zwei Datensätze:

Punktinformationen, die als (tile_number, point_id: point_info) gespeichert sind, sind 1: n Schlüssel-Wert-Paare. Dies bedeutet, dass es für jede Kachelnummer mehrere point_id: point_info geben kann

Zeileninformationen, die als (tile_number, line_id: line_info) gespeichert sind, sind wieder 1: m Schlüssel-Wert-Paare und für jede tile_number kann es mehr als eine line_id: line_info geben

Wie Sie sehen, sind die tile_numbers zwischen den beiden Datensätzen identisch. Was ich jetzt wirklich brauche, ist, diese beiden Datensätze basierend auf jeder tile_number zu verbinden. Mit anderen Worten, für jede Kachelnummer haben wir n point_id: point_info und m line_id: line_info. Was ich tun möchte, ist, alle Paare von point_id: point_info mit allen Paaren von line_id: line_info für jede tile_number zu verbinden

Zur Verdeutlichung hier ein Beispiel:

Für Punktepaare:

(tile0, point0)
(tile0, point1)
(tile1, point1)
(tile1, point2)

für Linienpaare:

(tile0, line0)
(tile0, line1)
(tile1, line2)
(tile1, line3)

was ich will ist wie folgt:

für Fliese 0:

 (tile0, point0:line0)
 (tile0, point0:line1)
 (tile0, point1:line0)
 (tile0, point1:line1)

für Fliese 1:

 (tile1, point1:line2)
 (tile1, point1:line3)
 (tile1, point2:line2)
 (tile1, point2:line3)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage