Welcome to aparke’s blog
Mapreduce经典案例之倒排索引创建
题目描述
案例需求实现统计某目录下单词在不同文件的出现的次数 如下的结果
数据样例:
需求:有大量的文本文档,如下所示:
a.txt
hello tom
hello jim
hello kitty
hello rose
b.txt
hello jerry
hello jim
hello kitty
hello jack
c.txt
hello jerry
hello java
hello c++
hello c++
需要得到以下结果:
hello a.txt–>4 b.txt–>4 c.txt–>4
java c.txt–>1
jerry b.txt–>1 c.txt–>1
….处理逻辑:
1 第一步:先求出每个文件中每个单词出现的次数,使用”单词-文件名”作为key,1为value 输出为总次数。
2 第二步:使用上一次结果 将单词的作为一组key 文件名–>次数作为value。vworker在调map方法时,会传入一个context,而context中包含了这个worker所读取的数据切片信息,而切片信息又包含这个切片所在的文件信息
那么,就可以在map中:
FileSplit split = context.getInputSplit();
String fileName = split.getpath().getName();
处理逻辑代码
第一步
package cn.aparke.mr.index; |
第二步
package cn.aparke.mr.index; |