0

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

4

1 回答 1

0

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

第二个 MR 作业将读取这些对 (author+word,count) 并将它们映射到 (author+count,word+count)。编写一个比较器以首先按作者排序这些键,然后按计数(从大到小)和一个分组器将具有相同作者的两个键视为在同一个归约组中,而不管它们的计数如何。您可能需要一个分区器来确保作者的所有对都进入同一个分区。然后将为每个作者调用一次化简器,并且值(字数+计数)将由具有最大计数的迭代器提供。在 reducer 中,只需从 Iterable 的前 N ​​条记录中写入作者、单词和计数。

于 2013-05-03T03:25:02.333 回答