我正在使用一个包含4个MapReduce步骤的程序。我的第一步输出是:
id value
1 20
2 3
3 9
4 36
我有大约1,000,000个ID,在第二步中我必须对值进行排序。此步骤的输出:
id value
4 36
1 20
3 9
2 3
如何在地图中对数据进行排序?我需要使用terasort吗?如果是,我如何在程序的第二步中使用terasort? 感谢。
答案 0 :(得分:1)
如果您想根据value's
排序,请将其设为key in map
。即。
id value
1 20
2 3
3 9
4 36
5 3
地图功能中的(值)(键)
output will be
key value
3 5
3 2
9 3
20 1
36 4
map<value, id> output key/value
reduce <value, id>
如果你想让id在第一列,这将有效。
context.write(value,key);
请注意,id不会被排序