我想通过以下操作创建Map函数:
第1步:
我有2个数据集R
和S
。我想将两个数据集划分为n个相等大小的块,这可以通过将每个(R/n and S/n
)记录放入一个块来完成。
之后:
第2步:
然后,每个可能的块对(一个来自R,一个来自S)在Map阶段结束时被分区为一个桶,这样就可以从Reduce Function中取出一些id作为每个值对的键。
例如<id:(Sij, Ril)>
2.如何在步骤2中专门参考这些数据集,以便从R中取一个块,从S中取一个?
注意:在main中我定义了两个数据集:
`FileInputFormat.setInputPaths(conf, new Path(args[0]), new Path(args[1]));`
答案 0 :(得分:0)
只需提供解决方案,我认为有更好的解决方案。
正如我在hadoop-0.20.2中测试的那样,默认情况下,每个Map只读取一个文件。所以只需为Map阶段添加一个计数器,并输出计数器作为键,数据的上下文作为值。 那么第二个问题将非常简单,只需输出具有相同键的值