Hadoop の 2 つのデータセット間で Natural-Join 操作を実装する方法を知っている人はいますか?
より具体的には、ここで私が正確に行う必要があるのは次のとおりです。
私は2セットのデータを持っています:
(tile_number, point_id:point_info) として保存されるポイント情報。これは 1:n のキーと値のペアです。これは、すべての tile_number に対して、複数の point_id:point_info が存在する可能性があることを意味します
(tile_number, line_id:line_info) として保存される行情報。これも 1:m のキーと値のペアであり、すべての tile_number に対して複数の line_id:line_info が存在する可能性があります。
ご覧のとおり、 tile_numbers は 2 つのデータセット間で同じです。ここで本当に必要なのは、各 tile_number に基づいてこれら 2 つのデータセットを結合することです。つまり、タイル番号ごとに、n 個の point_id:point_info と m 個の line_id:line_info があります。私がやりたいことは、point_id:point_info のすべてのペアを、すべての tile_number の line_id:line_info のすべてのペアと結合することです。
明確にするために、ここに例を示します。
ポイント ペアの場合:
(tile0, point0)
(tile0, point1)
(tile1, point1)
(tile1, point2)
ライン ペアの場合:
(tile0, line0)
(tile0, line1)
(tile1, line2)
(tile1, line3)
私が欲しいのは次のとおりです:
タイル 0 の場合:
(tile0, point0:line0)
(tile0, point0:line1)
(tile0, point1:line0)
(tile0, point1:line1)
タイル 1 の場合:
(tile1, point1:line2)
(tile1, point1:line3)
(tile1, point2:line2)
(tile1, point2:line3)