我正在编写一个map reduce程序来查找包含最多单词的文件。
现在,我可以使用map reduce来查找每个文件中包含的单词数。但是,我不确定如何在每个文件中存储单词数量,然后使用map reduce对其进行比较并找到包含最多单词的文件。
我的想法到目前为止:
有几个作业来查找每个文件中的单词数,如
file_name | number of words
file_1 5
file_2 10
file_3 15
则启动另一个作业,在减速器中查找最大字数最后得到如下结果
file_3
我想知道:这种方法有意义吗?有没有其他方法可以通过map reduce找到包含最多单词的文件?
在mapreduce中查找最小/最大值不是一个很好的用例。你需要强制数据到一个reducer
例如,迭代输入,并从映射器
写入null, file_1=5
null, file_2=10
null, file_3=15
然后,迭代reducer中的值并找到最大值,就像对任何数组一样。你需要拆分分隔符,这样你就有了文件名和"字数">