Unir dos conjuntos de datos en Mapreduce / Hadoop

¿Alguien sabe cómo implementar la operación de unión natural entre dos conjuntos de datos en Hadoop?

Más específicamente, esto es exactamente lo que necesito hacer:

Estoy teniendo dos conjuntos de datos:

información de puntos que se almacena como (tile_number, point_id: point_info), esto es un 1: n pares clave-valor. Esto significa que para cada número de azulejo, puede haber varios point_id: point_info

Información de línea que se almacena como (tile_number, line_id: line_info), nuevamente es un par clave-valor de 1: m y para cada tile_number, puede haber más de una line_id: line_info

Como puede ver, los números de azulejo son los mismos entre los dos conjuntos de datos. ahora lo que realmente necesito es unir estos dos conjuntos de datos en función de cada número de azulejo. En otras palabras, para cada número de azulejo, tenemos n point_id: point_info y m line_id: line_info. Lo que quiero hacer es unir todos los pares de point_id: point_info con todos los pares de line_id: line_info para cada tile_number

Para aclarar, he aquí un ejemplo:

Para pares de puntos:

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

para pares de líneas:

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

Lo que quiero es como sigue:

para el azulejo 0:

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

para el azulejo 1:

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

Respuestas a la pregunta(3)

Su respuesta a la pregunta