wordCount的解析
函数 | 输入 | wordcount中的输入 | 输出 | wordcount中的输出 |
map | <k1, v1> |
<行在文件中的偏移位置, 文件中的一行>
|
List(<k2,v2>)
|
List<单词,1(代表单词出现了一次)>
|
reduce |
<k2,List(v2)>
|
<单词,List(1(代表单词出现了一次))>
|
<k3,v3>
|
<单词,单词出现次数>
|
<k1,v1> 是 <行在文件中的偏移位置, 文件中的一行>,经 Map 函数映射之后,形成一批中间结果 <单词,出现次数>, 而 Reduce 函数则可以对中间结果进行处理,将相同单词的出现次数进行累加,得到每个单词的总的出现次数。
Mapper<Object, Text, Text, IntWritable> {
private final static IntWritable one = new IntWritable(1);//IntWritable为hadoop的int io类
private Text word = new Text();//Text为hadoop的文本io类
@Override
public void map(Object key, Text value, Context context)//map接口,参数key value 对应k1,v1
throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
this.word.set(itr.nextToken());
context.write(this.word, one);//这里输出<k2,v2> 即<单词,1(代表单词出现了一次)> 在循环中输出,所以输出多个,即输出一个List<k2,v2>
}
}
}
Reducer<Text, IntWritable, Text, IntWritable> {
private IntWritable result = new IntWritable();//IntWritable为hadoop的int io类
@Override
public void reduce(Text key, Iterable<IntWritable> values,
Context context) throws IOException, InterruptedException {//reduce接口,参数key value 对应k2 List<v2>
int sum = 0;
for (IntWritable val : values) {
sum += val.get();//get到的都是1,每执行一次+1
}
this.result.set(sum);
context.write(key, this.result);//<k3,v3> k3为单词,v3对应出现次数
}
}
wordCount的解析相关推荐
- 大数据入门:WordCount程序解析
大数据入门:WordCount程序解析 文章目录 大数据入门:WordCount程序解析 一.输入 二.程序解析 三.输出 四.需要注意的地方 为一个顽固的家伙写的,都要考试了还不让我给详细讲一下,我 ...
- mapreduce实现wordcount 详细解析
总括 Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(G ...
- spark wordcount函数解析
2019独角兽企业重金招聘Python工程师标准>>> sc.textFile("hdfs://sniper5:9000/hello.txt").flatMap( ...
- 初学Hadoop之图解MapReduce与WordCount示例分析
Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...
- 【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析
Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...
- Hadoop之图解MapReduce与WordCount示例分析
Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...
- 零基础学习hadoop到上手工作线路指导(中级篇)
2019独角兽企业重金招聘Python工程师标准>>> 此篇是在零基础学习hadoop到上手工作线路指导(初级篇)的基础,一个继续总结. 五一假期:在写点内容,也算是总结.上面我们会 ...
- java编译找不到符号_javac编译时找不到符号?
我是个新手,在linux使用java编程时,出现这个情况. 我把要引的包放在classpath中,红色部分: export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAV ...
- (超详细)MapReduce工作原理及基础编程
MapReduce工作原理及基础编程(代码见文章后半部分) JunLeon--go big or go home 目录 MapReduce工作原理及基础编程(代码见文章后半部分) 一.MapReduc ...
最新文章
- PX4编写msg文件
- 电商系统如何做搜索引擎?
- UbuntuでPostgreSQLをインストールからリモートアクセスまでの手順
- final 修饰方法参数
- ClassLoader工作机制
- 简述container与container-fluid的区别
- OC与JS交互 初体会
- SQLServer中批量插入数据方式的性能对比
- document.frames()与document.frames[]的区别
- Python 核心编程 (全)
- python正则表达式实战中的总结
- Word插入Latex公式的几种方式(TeXsWord、EqualX、Aurora等工具)
- matlab 求不定积分与定积分
- 华为TechWave峰会上主推的分布式云到底什么来头?
- Rdlc报表纵向与横向打印问题
- 用matlab怎么画出y=sin(t)的导函数图像?用diff为什么一阶导函数会缩小100倍,二阶导函数会缩小1000倍。求大神指教
- VBScript脚本语言基础
- 清华大学董家鸿:智慧医疗,肝胆守望
- 收藏一些很炫的html特效
- 天然气管道折弯测量与失效分析
热门文章
- GPU内存分明没人占用但是分配不了内存的解决办法
- 配置GitHub二级域名,xxx.github.io
- 如何使用uTorrent制作自己的种子
- python strptime_Python法律实务应用——制作自己的LPR计算器
- 这样干前端你早该考虑离职了
- 不装了,我开源了5款人脸生成器!超模脸、网红脸、萌娃脸...
- 场内场外交易成本_场内基金与场外基金各有什么优劣势?
- ABAQUS 2020 license冲突解决
- vue 引入 自定义字体文件
- 安装IE11提示“Internet Explorer在安装前需要更新”