Junção de dois conjuntos de dados no Mapreduce / Hadoop

Alguém sabe como implementar a operação de associação natural entre dois conjuntos de dados no Hadoop?

Mais especificamente, eis o que preciso exatamente fazer:

Eu estou tendo dois conjuntos de dados:

informações de ponto que são armazenadas como (tile_number, point_id: point_info), são pares de valor-chave 1: n. Isso significa que para cada tile_number, pode haver vários point_id: point_info

Informações de linha que são armazenadas como (tile_number, line_id: line_info), isso é novamente um pares de valor-chave de 1: m e para cada tile_number, pode haver mais de um line_id: line_info

Como você pode ver, os tiles_numbers são os mesmos entre os dois conjuntos de dados. Agora, o que eu realmente preciso é juntar esses dois conjuntos de dados com base em cada tile_number. Em outras palavras, para cada tile_number, temos n point_id: point_info e m line_id: line_info. O que eu quero fazer é juntar todos os pares de point_id: point_info com todos os pares de line_id: line_info para cada tile_number

Para esclarecer, aqui está um exemplo:

Para pares de pontos:

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

para pares de linhas:

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

o que eu quero é o seguinte:

para telha 0:

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

para o ladrilho 1:

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

questionAnswers(3)

yourAnswerToTheQuestion