Java MapReduce:如何从两个不同的数据集中获取块以使它们成对
我想通过以下操作创建映射函数: 步骤1: 我有两个数据集Java MapReduce:如何从两个不同的数据集中获取块以使它们成对,java,mapreduce,Java,Mapreduce,我想通过以下操作创建映射函数: 步骤1: 我有两个数据集R和S。我想将两个数据集划分为n个大小相等的块,这可以通过将每个(R/n和S/n)记录放入一个块来完成 之后: 步骤2: 然后,在映射阶段结束时,将每个可能的块对(一个来自R,一个来自S)划分到一个bucket中,以便可以从Reduce函数中获取作为输入的块,并将一些id作为每个值对的键。 e、 g将是 因此,我的问题是: 如何实施步骤1?是否有我可以使用的实现功能 2.如何在第2步中具体引用这些数据集,以便从R中提取一个数据块,从S中提取
R
和S
。我想将两个数据集划分为n个大小相等的块,这可以通过将每个(R/n和S/n
)记录放入一个块来完成
之后:
步骤2:
然后,在映射阶段结束时,将每个可能的块对(一个来自R,一个来自S)划分到一个bucket中,以便可以从Reduce函数中获取作为输入的块,并将一些id作为每个值对的键。
e、 g将是
因此,我的问题是:
`FileInputFormat.setInputPaths(conf, new Path(args[0]), new Path(args[1]));`
只要提供一个解决方案,我认为还有更好的解决方案 正如我在hadoop-0.20.2中测试的那样,默认情况下,每个映射只读取一个文件。因此,只需为映射阶段添加一个计数器,并将计数器作为键输出,将数据的上下文作为值输出。 那么第二个问题就很简单了,只要用相同的键输出值就行了