计算mapreduce框架中每位作者的顶级单词

时间:2013-05-03 03:04:58

标签: mapreduce word-count

我有一个文件集合,每个文件都包含作者的姓名和他使用的单词。现在我正在尝试编写map-reduce代码来计算每位作者的前N个单词。棘手的部分是文件可能包含多个作者。 所以我应该如何设计map-reduce框架? 伪代码加一点解释就足够了。感谢

1 个答案:

答案 0 :(得分:0)

在一个MR作业中,通过创建作者+单词和值计数的复杂键来计算每个作者使用的单词。

第二个MR作业会读取这些对(作者+单词,计数)并将它们映射到(作者+计数,单词+计数)。编写一个比较器,首先按作者顺序排列这些键,然后按计数(从大到小)和一个石斑鱼来处理两个具有相同作者的键,而不管它们的数量是多少。您可能需要一个分区程序来确保作者的所有对都转到同一个分区。然后将为每个作者调用一次reducer,并且值(字数+ count)将由具有最大计数的iterable提供。在reducer中,只需从Iterable的前N条记录中写出作者,单词和计数。