头歌 MapReduce排序--倒排序索引

任务描述
本关任务:统计出每个单词出现的文档路径及词频数。

相关知识
倒排序索引概述
“倒排索引”是文档检索系统中最常用的数据结构,被广泛地应用于全文搜索引擎。 它主要是用来存储某个单词(或词组)在一个文档或一组文档中的存储位置的映射,即提 供了一种根据内容来查找文档的方式。由于不是根据文档来确定文档所包含的内容,而是进行相反的操作,因而称为倒排索引。

简单来说根据单词,返回单词在哪个文件中出现过,而且频率是多少的结果。

文件格式说明以及文件内容
本实训编程所用到的输入文件格式为 txt 格式,文件名为input1.txt,input2.txt,input3.txt。

input1.txt文件内容:

MapReduce is easy to learn MapReduce is a programming model MapReduce parallel computing of large data sets MapReduce is a cluster based high performance parallel computing platform It allows common commercial servers on the market to form a distributed and parallel computing cluster with dozens hundreds to thousands of nodes.

input2.txt文件内容:

MapReduce is easy to operate MapReduce is easy to understand MapReduce is a computing model framework and platform parallel processing of big data

input3.txt文件内容:

Hello MapReduce bye MapReduce
编程要求
根据提示,在右侧编辑器补充代码,统计出每个单词出现的文档路径及单词频数。

①map阶段:
首先通过输入的文件进行处理,得到文件每行的偏移量和内容,分析输入键值对,得到倒排序索引中所需的单词、文档路径以及单词频率。

②combine阶段:
通过map阶段你会发现有问题,通过一个 Reduce 过程无法同时完成词频统计和生成文档列表,所以必须增加一个 Combine 过程完成词频统计。这里可以将单词和路径 组成 key 值(如“ MapReduce:input1.txt”),将词频作为value。
问题解决之后,combine阶段需将key值与value值累加,得到单词在文档中出现的频率。
但在Shuffle过程时将面临一个问题:所有具有相同单词的记录(由单词、URL和词频组成)应该交由同一个Reducer处理,但当前的key值无法保证这一点,所以必须修改 key值和value 值。这次将单词作为key值,URL和词频组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值