hadoop编程之词频统计

数据集实例

java代码,编程

实例

我们要先创建三个类分别为WordCoutMain、WordCoutMapper、WordCoutReducer这三个类

对应的代码如下

WordCoutMain

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 
public class WordCountMain{
	public static void main(String[] args) throws Exception {
	    Configuration conf = new Configuration();
	    Job job = Job.getInstance(conf);
	    job.setJarByClass(WordCountMain.class);
	    job.setMapperClass(WordCountMapper.class);
	    job.setReducerClass(WordCountReducer.class);
	    job.setMapOutputKeyClass(Text.class);
	    job.setMapOutputValueClass(LongWritable.class);
	    job.setOutputKeyClass(Text.class);
	    job.setOutputValueClass(LongWritable.class);
	    FileInputFormat.setInputPaths(job, new Path(args[0]));
	    FileOutputFormat.setOutputPath(job, new Path(args[1]));
	    job.waitForCompletion(true);
	}
 
}

WordCoutMapper

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
 
public class WordCountMapper extends Mapper<LongWritable, Text, Text, LongWritable> {
@Override
protected void map(LongWritable key1, Text value1, Context context)
throws IOException, InterruptedException {
		String data = value1.toString();
      	String[] words = data.split(" ");
        	for(String w:words)
       	 {
        		context.write(new Text(w),new LongWritable(1));
       	 }
        }
}

WordCoutReducer

import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
 
 
public class WordCountReducer extends Reducer<Text, LongWritable,Text, LongWritable> {
@Override
protected void reduce(Text k3, Iterable<LongWritable> v3,Context   context) throws IOException,InterruptedException {
        	long  total = 0;
        	for(LongWritable v:v3)
       	 {
        		total+=v.get();
       	 }
        	context.write(k3, new LongWritable(total));
        }
}

对应的使用命令

hadoop jar 1.jar  ch01.WordCountMain  /user/data/input/hamlet.txt  /user/data/output/ch1

hadoop jar 包名   引用主类   输入文件路径  输出文件路径

结果展示

 

学习链接:

在Ubuntu上用mapreduce进行词频统计(伪分布式)_mapreduce怎么统计txt文件词频终端-CSDN博客

利用mapreduce统计部门的最高工资_使用mapreduce查询某个部门中薪资最高的员工姓名,如果输出结果的格式为“薪资 员-CSDN博客

 hadoop编程之工资序列化排序-CSDN博客

hadoop编程之部门工资求和-CSDN博客

hadoop编程之词频统计-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/563725.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊---设计安全架构

会从以下三个方面展开&#xff1a; 1、AWS资源访问安全 2、应用程序负载的网络安全 3、云中数据的安全 责任共担模式 就像租房子&#xff08;房东和你的责任&#xff09; AWS资源访问安全 需要掌握以下几点&#xff1a; 1、跨多个账户的访问控制和管理 2、AWS联合访问和身份服…

买了个三星i9300(S3)供以后给黑莓Q10开发软件用(安卓4.3)

买了个三星i9300(S3)供以后给黑莓Q10开发软件用(安卓4.3) 前段时间的时候一心想给黑莓Q10开发个软件用用&#xff0c;开发到一半因为过程太过繁琐才叫停了。 一、黑莓Q10安卓应用开发为什么繁琐&#xff1f; Q10的开发过程是这样的&#xff1a; 因为黑莓Q10 里面运行的是Andr…

深度学习之视觉特征提取器——VGG系列

VGG 提出论文&#xff1a;1409.1556.pdf (arxiv.org) 引入 距离VGG网络的提出已经约十年&#xff0c;很难想象在深度学习高速发展的今天&#xff0c;一个模型能够历经十年而不衰。虽然如今已经有VGG的大量替代品&#xff0c;但是笔者研究的一些领域仍然有大量工作选择使用VG…

layabox手游全面屏、ipad屏幕适配方案

1设置 手游平台在项目设置中&#xff0c;场景适配模式选择”固定宽模式 fixedwidth“&#xff0c;设计宽度以全面屏比例为主&#xff0c;我这里设置的设计宽高为640 * 1386 2代码和场景 laya的UI面板有三种类型&#xff0c;分别是Scene、View和Dialog 1&#xff09;Scene和V…

Java web应用性能分析服务端慢之Nginx慢

一般Nginx作为整个应用的入口&#xff0c;即做静态服务器&#xff0c;也做负载均衡、反向代理&#xff1b;同时也因为位置靠前&#xff0c;还可以通过Nginx对于访问的IP、并发数进行相应的限制。在Java web应用性能分析中&#xff0c;Nginx是重要环节&#xff0c;Nginx的性能也…

Flink Job提交分析

1.概述 Flink 应用程序的提交方式为&#xff1a;打成jar包&#xff0c;通过 flink 命令来进行提交。 flink 命令脚本的底层是通过 java 命令启动&#xff1a;CliFrontend 类 来启动 JVM 进程&#xff0c;执行任务的构造和提交。 flink run xxx.jar class arg1 arg2flink.sh 脚…

Springboot+Vue项目-基于Java+MySQL的影城管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

Unity 新版输入系统(Input System)

前言 官方教程 注意 新的输入法系统需要 Unity 2019.4 和 .NET 4 运行时。它不适用于 .NET 3.5 的项目。 教程版本&#xff1a;Unity 2021.3.26 1. 安装 1.1 打开 Package Manager 导航栏 -> Window -> Package Manager 1.2 安装 Input System 选择 Unity Registry 在…

【WEB前端2024】开源元宇宙:乔布斯3D纪念馆-第8课-新增摆件

【WEB前端2024】开源元宇宙&#xff1a;乔布斯3D纪念馆-第8课-新增摆件 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&#…

mysql基础20——数据备份

数据备份 数据备份有2种 一种是物理备份 一种是逻辑备份 物理备份 物理备份 通过把数据文件复制出来 达到备份的目的 用得比较少 逻辑备份 逻辑备份 把描述数据库结构和内容的信息保存起来 达到备份的目的 是免费的 数据备份工具 mysqldump &#xff08;3种模式&#x…

C++笔试强训day4

目录 1.游游的you 2.腐烂的苹果 3.孩子们的游戏 1.游游的you 链接&#xff1a; 分析题意之后&#xff0c;发现就是一道简单的贪心&#xff0c;当然也可以把他看作纯数学题。 因为you和oo里面都有o&#xff0c;但是you可以得两分&#xff0c;所以贪心策略尽可能的去凑更多的…

【嵌入式】keil5安装(同时兼容C51和STM32)

最近在开发STM32的时候&#xff0c;安装Keil5&#xff0c;遇到STM32和C51的共存的问题&#xff0c;在网上找了很多方法&#xff0c;又遇到一些bug&#xff0c;最终还是弄好了。因此将处理的过程记录下来&#xff0c;希望对遇到相同问题的朋友一些启发。 1、下载安装包 Keil P…

vue-Router 路由(常量路由)

1、安装 pnpm i vue-router 2、新建文件&#xff1a;src/routes.ts import { RouteRecordRaw } from vue-routerexport const constantRoute: RouteRecordRaw[] [{//path: /,redirect: /login,},{//path: /login,component: () > import(/views/Login/index.vue),name…

mysql基础6——多表查询

外键 把分散在多个不同表里面的数据查询出来的操作&#xff0c;就是多表查询 把两个表连接&#xff1a;使用外键(foreign key)和连接(join) 外键在表创建的阶段定义也可以通过修改表定义&#xff0c;连接在查询字段把相同意义的字段连接起来 外键就是从表中用来引用主表中数…

【MATLAB源码-第190期】基于matlab的32QAM系统相位偏移估计EOS算法仿真,对比补偿前后的星座图误码率。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. 引言 M-QAM调制技术的重要性 现代通信系统追求的是更高的数据传输速率和更有效的频谱利用率。M-QAM调制技术&#xff0c;作为一种高效的调制方案&#xff0c;能够通过在相同的带宽条件下传输更多的数据位来满足这一需求…

舍得酒业陷入瓶颈期:业绩增速再放缓,股价低迷,市场信心缺失?

撰稿|行星 来源|贝多财经 被誉为“川酒六朵金花”之一的舍得酒业&#xff0c;混的不算好。 近日&#xff0c;舍得酒业股份有限公司&#xff08;SH:600702&#xff0c;下称“舍得酒业”&#xff09;披露2023年年度报告。在白酒行业活性整体趋弱的大环境下&#xff0c;舍得酒业…

加入新团队时,为什么你需要一个“WTF 笔记本”

原文&#xff1a;Nat Bennett - 2021.09.04 我有一个子弹日记。我并不是你在 Pinterest 上看到的那种用精美排版的人——大部分只使用黑色墨水&#xff0c;标准设置&#xff0c;偶尔会有自定义的集合。 每当我加入新的团队&#xff0c;都会翻到下一页&#xff0c;然后在那一页…

引用静态方法

import java.util.Arrays; import java.util.Comparator;public class demo1 {//引用public static void main(String[] args) {Integer []arr{1,2,4,3,8,6};//匿名内部类Arrays.sort(arr, new Comparator<Integer>() {Overridepublic int compare(Integer o1, Integer o…

docker 报错 error adding seccomp filter rule for syscall clone3

网上有一些说法&#xff0c;例如重新安装docker 但是我自己尝试&#xff0c;用 –security-opt seccompunconfined 就可以&#xff0c;但是需要把这个命令放到紧挨着run的位置&#xff0c;如果放到偏后的位置&#xff0c;可能不起作用。 以下命令是其他网友启动是的命令&…

是用computed获取vuex数据后,修改数据页面不响应的问题

问题描述&#xff1a; 代码里使用computed获取mapGetters的数据后&#xff0c;直接在页面使用&#xff0c;在methods中更新数据后&#xff0c;控制台打印数据已经更改&#xff0c;但是页面上的数据没有同步更改和响应。 分析&#xff1a; 1.computed是计算属性&#xff0c;所有…