Elastic Map Reduce(AWS)上的Hadoop强制整数排序

时间:2013-05-01 11:38:15

标签: amazon-web-services amazon-emr

我在Elastic Map Reduce上使用Hadoop上的map reducer(在AWS上),但是它将它作为字符串排序,我想进行整数排序。怎么做 ?我想把键作为整数,并对键进行整数排序。

2 个答案:

答案 0 :(得分:2)

我建议使用前导零预先挂起(或填充)整数,以便您可以让Hadoop(或EMR)进行词法排序。 Hadoop不支持基于整数的排序 - 它只是简单的词法排序。

例如,如果这些是您的关键:

1
15
168
1900

你应该在mapper中输出它们:

0001
0015
0168
1900

以便Hadoop可以正确地对它们进行排序。

答案 1 :(得分:0)

可以在不修改数据的情况下使用此相关问题的答案:how to sort numerically in hadoop's shuffle/sort phase?