4

我正在使用具有 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

如何在 map reduce 中对数据进行排序?我需要使用 terasort 吗?如果是,我如何在程序的第二步中使用 terasort?谢谢。

4

1 回答 1

1

如果要根据 排序value's,请使其key in map起作用。IE

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(值,键);

请注意,id 不会被排序

于 2013-05-07T04:37:54.883 回答