Hadoop -通过reducer正确地按键和组排序



我有一些数据从减速器出来,像这样:

9,2    3
5,7    2
2,3    0
1,5    3
6,3    0
4,2    2
7,1    1

我想根据第二列的数字对它们进行排序。像这样:

2,3    0
6,3    0
7,1    1
5,7    2
4,2    2
1,5    3
9,2    3

当我在本地运行程序时,使用:

sort -k2,2n

但是我不知道如何在Hadoop上做同样的事情。我尝试了几个不工作的选项,例如:

-D mapreduce.partition.keycomparator.options=-k2,2n

此外,我希望所有具有相同键的数据都放在同一个reducer上。在这个例子中:

2,3   0

6,3   0

应由同一减速机处理。

我应该在hadoop上放什么选项?

提前感谢!

在job的默认配置中,第一列是来自reducer的结果的键,第二列是值。为了产生结果,reducer处理所有具有相同键的记录。因此,在您的情况下,您需要运行一个额外的mapreduce作业。映射将把第二列作为键,第一列作为值。此工作将根据您的要求分组数据。但是,如果结果是数据量很小,则每个作业只设置一个reducer。

相关内容

  • 没有找到相关文章

最新更新