MapReduce经典案例——统计单词数
package com.bwzy.hadoop; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.*; import org.apache.hadoop.mapreduce.*; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; public class WordCount extends Configured implements Tool {public static class Mapextendsorg.apache.hadoop.mapreduce.Mapper<LongWritable, Text, Text, IntWritable> {private final static IntWritable one = new IntWritable(1);private Text word = new Text();public void map(LongWritable key,Text value,Context context){String line = value.toString();StringTokenizer tokenizer = new StringTokenizer(line);//读取每一行数据,并将该行数据以空格分割(StringTokenizer默认是以空格分割字符串)while (tokenizer.hasMoreTokens()) {word.set(tokenizer.nextToken());try {context.write(word, one);//输出给Reduce} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}}}public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {public void reduce(Text key, Iterable<IntWritable> values,Context context) throws IOException, InterruptedException{int sum = 0; //合并每个单词出现的次数for (IntWritable val : values) {sum+=val.get();}context.write(key, new IntWritable(sum));}}public static void main(String[] args) throws Exception {int ret = ToolRunner.run(new WordCount(), args);System.exit(ret);}@Overridepublic int run(String[] arg0) throws Exception {Job job = new Job(getConf());job.setJobName("wordcount");job.setOutputKeyClass(Text.class);//key--设置输出格式job.setOutputValueClass(IntWritable.class);//value--设置输出格式job.setMapperClass(Map.class);job.setReducerClass(Reduce.class);job.setInputFormatClass(TextInputFormat.class);job.setOutputFormatClass(TextOutputFormat.class);FileInputFormat.setInputPaths(job, new Path(arg0[0]));FileOutputFormat.setOutputPath(job, new Path(arg0[1]));boolean success = job.waitForCompletion(true);return success?0:1;} }
转载于:https://blog.51cto.com/3157689/1350178
MapReduce经典案例——统计单词数相关推荐
- MapReduce经典案例总结
MapReduce经典案例总结 首先得搭好hadoop环境,windows搭好单机环境 1.根据手机号统计上网流量,统计上行流量.下行流量和总流量 数据如下,文件 flow.log,上传到hadoop ...
- 信息学奥赛一本通 1400:统计单词数 | 1954:【11NOIP普及组】统计单词数 | OpenJudge NOI 1.12 05 | 洛谷 P1308 [NOIP2011 普及组] 统计单词数
[题目链接] ybt 1400:统计单词数 ybt 1954:[11NOIP普及组]统计单词数 OpenJudge NOI 1.12 05:统计单词数 洛谷 P1308 [NOIP2011 普及组] ...
- linux统计单词程序,linux统计单词数
sort +awk+uniq 统计文件中出现次数最多的前10个单词 实例 cat logt.log|sort -s -t '-' -k1n |awk '{print $1;}'|uniq -c|sor ...
- 14-luogu-P1308 [NOIP2011 普及组] 统计单词数
文章目录 问题 [NOIP2011 普及组] 统计单词数 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 提示 我的错误代码 大神 ...
- MapReduce经典案例—TopN
目录 一.问题介绍 (一)案例分析 1. TopN分析法介绍 2. 案例需求及分析 (二)案例实现 1. Map阶段实现 2. Reduce阶段实现 3. Driver程序主类实现 4. 效果测试 二 ...
- python【蓝桥杯vip练习题库】ADV-17统计单词数
试题 算法提高 统计单词数 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 统计输入英文文章段落中不同单词(单词有大小写之分, 但统计时忽略大小写)各自出现的次数. 输入段落中所含单 ...
- c++ 新技能get 统计单词数
123 DongDong prefers English words to English sentences, so he wants to count the words of a sentenc ...
- 信息学奥赛一本通(1400:统计单词数)
1400:统计单词数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 21054 通过数: 6817 [题目描述] 一般的文本编辑器都有查找单词的功能,该功 ...
- 1.12.05 统计单词数
05:统计单词数 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出 ...
最新文章
- .Net Framework 3.0 概述
- R语言使用across函数一次性将多个数据列进行离散化(categorize):或者pivot_longer函数转化为长表、对转化为长表的数值数据列进行离散化、pivot_wider将数据转化为宽表
- Swift 高级运算符
- GdiPlus[12]: IGPLinearGradientBrush 的其他构建方式
- __cdecl __fastcall与__stdcall
- django链接数据库报错Error loading MySQLdb module:No module named MySQLdb
- python教程视频-私藏已久的7个Python视频教程
- Linux查询存储信息,查询存储系统信息 - OceanStor UltraPath for Linux 21.5.0 用户指南 02 - 华为...
- 【S交换机技术连载帖】交换机在江湖系列-序言
- Mysql 关联查询 索引失效
- 怎么用python找资料_python去哪里找资源教程学习?
- Nvidia驱动支持的linux版本,完善支持 NVIDIA显卡Linux驱动275.19正式版
- Python爬虫爬取一页韩寒新浪博客
- ROS实战篇(一)如何在ROS中编写自己的package?------ 以节点通信为例
- 360浏览器极速模式和兼容模式
- Your cache folder contains root-owned files, due to a bug in npm ERR! previous versions of npm which
- 计算机格式化没有fat32,windows里面没有FAT32格式化命令
- 光栅渲染器(六)着色准备和深度缓存实现
- linux使用tmux后台运行程序
- gitlab密码忘了怎么办?
热门文章
- 程序员何苦为难程序员?
- 使用log4Net 输出日志到mongodb
- 缓冲运动之框架開始一级简单框架实例
- 常用的NSLOG日志打印格式
- [信息收集] HCOMP 2010概况及收录论文
- JS实现sleep功能 JS遍历document对象
- linux配置ip地址 suse_SUSE Linux下设置IP的两种方法
- html select选择事件_一道搜狗面试题:IO多路复用中select、poll、epoll之间的区别...
- delphi 软件在线人数统计_8款值得学习的科研论文作图软件
- ADC知识(2)——直流参数(输入电压参考,参考电流输入,积分非线性误差,差分非线性误差)...