2013-08-23 82 views
8

嗨,我想学习如何在hadoop.i知道hadoop需要的排序键,但不是价值观按字面值排序字数。如何根据hadoop中的值对字数进行排序?

我知道的值进行排序,我们必须有一个分区,groupingcomparator和sortcomparator

,但我在运用这些概念放在一起排序的字按价值算有点糊涂了。

我们是否需要使用另一个地图缩小作业来实现相同或否则组合器来计算出现次数,然后在这里进行排序并将其发送到Reducer?

任何一个可以解释如何按值排序字数计数示例?

+0

8小时前你没问过同样的问题吗? [http://stackoverflow.com/questions/18395998/hadoop-map-reduce-secondary-sorting] – DDW

+0

有点混淆,同时应用这些概念 – user1585111

回答

7

您需要有第二个mapreduce作业。除非你总结总数(第一个MR工作是这样),你怎么看待按价值排序(单词的计数)?从逻辑上讲不可能。

+0

我的意思是根据出现次数排序 – user1585111

+0

是的。我有同样的理解。要确定发生次数,您需要运行MR作业。只有在处理密钥结束时,才能确定事件的发生次数。当下一个键来到Reduce任务的上下文的前一个键时。所以不可能把这个词作为关键词并按价值分类。您需要将其输出到另一个MR作业,并将该值用作第二个作业中的关键字。 – Rags

+0

我只是一个初学者,你的回答是有帮助的。谢谢你 – user1585111

6

这称为二级分类。有关详细信息,请参阅thisthis

+1

次要排序无助于按照问题中提到的出现次数进行排序。不可能达到! – rbyndoor

+0

@ruby:问题是关于对wordcount作业的结果进行排序,基于值是每个单词的计数。是什么让你觉得这是不可能实现的? – Tariq

+1

否..根据用户的评论,非常清楚,user1585111希望按出现次数进行排序。这不是次要的。 – rbyndoor

相关问题