我正在阅读有关mapreduce的内容,我想知道一个特定的场景.假设我们有几个文件(例如fileA,fileB,fileC),每个文件由多个整数组成.如果我们想对所有文件中的数字进行排序以创建如下内容:
23 fileA 34 fileB 35 fileA 60 fileA 60 fileC
地图和减少过程如何工作?
目前,这就是我所拥有的,但它并不完全正确;
(fileName, fileContent) -> (map to) (Number, fileName)
对临时密钥,值对和get进行排序
(Number, (list of){fileName1, fileName2...})
减少临时对并得到
(Number, fileName1) (Number, fileName2)
等等
问题是在排序阶段,文件名可能不是按字母顺序排列,因此reduce部分不会生成正确的输出.有人可以就这种情况的正确方法提供一些见解吗?