Jointure de deux ensembles de données dans Mapreduce/Hadoop

Personne ne sait comment les mettre en œuvre au Naturel-opération de Jointure entre les deux ensembles de données dans Hadoop?

Plus précisément, voici ce que j'ai exactement besoin de le faire:

Je vais avoir deux ensembles de données:

  1. point information qui est stockée en tant que (tile_number, point_id:point_info) , c'est un 1:n paires clé-valeur. Cela signifie que pour chaque tile_number, il peut y avoir plusieurs point_id:point_info

  2. Ligne de l'information qui est stockée en tant que (tile_number, line_id:line_info) , c'est à nouveau un 1:m paires clé-valeur et pour chaque tile_number, il pourrait y avoir plus d'un line_id:line_info

Comme vous pouvez le voir le tile_numbers sont les mêmes entre les deux ensembles de données. maintenant ce que j'ai vraiment besoin de faire est de rejoindre ces deux ensembles de données en fonction de chaque tile_number. En d'autres termes, pour chaque tile_number, nous avons n point_id:point_info et m line_id:line_info. Ce que je veux faire est d'adhérer à toutes les paires de point_id:point_info avec toutes les paires de line_id:line_info pour chaque tile_number


Afin de clarifier, voici un exemple:

Pour point de paires:

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

pour les paires de lignes:

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

ce que je veux, c'est comme suivant:

pour la case 0:

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

pour la tuile 1:

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

OriginalL'auteur reza | 2012-08-03