有谁知道如何在 Hadoop 中实现两个数据集之间的 Natural-Join 操作?
更具体地说,这就是我真正需要做的:
我有两组数据:
点信息存储为 (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 相同。现在我真正需要的是根据每个 tile_number 加入这两个数据集。换句话说,对于每个 tile_number,我们有 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)