带mapreduce的倒排索引

3qpi33ja  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(336)

我正在尝试为以下问题实现反向索引:我得到一个包含x个文件量的目录,我需要生成以下格式的输出:

word : totalCount : [ (file_name, file_count) (file_name, file_count) ...]

例如,我们可以:

dog : 200 : [(file1, 30) (file2, 43) ....]

我实现了一个针对每个文档的作业,并输出每个文档中每个单词出现的次数。然而,我不知道我现在应该如何处理,以便获得所有文件的计数。
如果我有一个包含10个文档的目录,并且我的输入是目录本身的路径,那么如何为每个文档执行10个作业?另外,如何设置从10个单独作业中获取输出的作业?我知道如何实现reducer的逻辑,但是我不知道如何设置作业配置本身来确保它正常工作。

wdebmtf2

wdebmtf21#

这可以在一个Map缩小作业中完成。将所有输入路径传递给map reduce作业。
按以下步骤操作。
Map输出:关键字、文件名、值、计数
分区:仅基于单词
分组:再次基于word
现在在recuder中,您将有如下输入

Dog,file1,1
Dog,file1,1
Dog,file2,1
Dog,file2,1

对关键字进行迭代(我们仅基于组压缩器将关键字作为单词)dog。对每个文件进行计数,然后添加它并进行总计数。

相关问题