如何理解Mapper LongWritable, Text, Text, IntWritable 和Reducer Text, IntWritable, Text, IntWritable

2023-05-16

案例:WorkCount
<key,value>
key:文件中的行的偏移量
value:行中的数据

  • Mapper
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;

/**
 * LongWritable 偏移量 long,表示该行在文件中的位置,而不是行号
 * Text map阶段的输入数据 一行文本信息 字符串类型 String
 * Text map阶段的数据字符串类型 String
 * IntWritable map阶段输出的value类型,对应java中的int型,表示行号
 */
public class WorkCountMap extends Mapper<LongWritable, Text, Text, IntWritable>{
	/**
	 * key 输入的 键
	 * value 输入的 值
	 * context 上下文对象
	 */
	@Override
	protected void map(LongWritable key, Text value, Context context)
			throws IOException, InterruptedException {
		
		String line = value.toString();
		String[] words = line.split("/t");//分词
		for(String word : words) {
			Text wordText = new Text(word);
			IntWritable outValue = new IntWritable();
			//写出
			context.write(wordText, outValue);
		}
	}
}
  • Reduce
    reduce阶段的输入 是 mapper阶段的输出
import java.io.IOException;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
/**
 * Text  数据类型:字符串类型 String
 * IntWritable reduce阶段的输入类型 int 
 * Text reduce阶段的输出数据类型 String类型
 * IntWritable 输出词频个数 Int型
 */
public class WorkCountReduce extends Reducer<Text, IntWritable, Text, IntWritable>{
	/**
	 * key 输入的 键
	 * value 输入的 值
	 * context 上下文对象,用于输出键值对
	 */
	@Override
	protected void reduce(Text key, Iterable<IntWritable> value,
			Context context) throws IOException, InterruptedException {

		int sum=0;
		for (IntWritable number : value) {
			sum += number.get();
		}
		//单词  个数  hadoop,10
		context.write(key, new IntWritable(sum));
	}	
}

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何理解Mapper LongWritable, Text, Text, IntWritable 和Reducer Text, IntWritable, Text, IntWritable 的相关文章

  • 应用层log函数的写法

    int my log const char format va list args FILE fp fp 61 fopen 34 tmp my log 34 34 a 43 34 if fp fprintf stderr 34 fp is
  • 工程计算流体力学软件FloEFD

    推荐一款工程计算流体力学软件FloEFD 此前一直使用ICEM 43 FLUENT软件 xff0c 后来由于工作原因 xff0c 使用的机会逐渐变少了 对不少人而言 xff0c CFD通常作为一种工程的辅助工具 xff0c 不想花太多精力
  • #统计整数个数(指针)

    以下面这题为例 xff1a 题目内容 xff1a 输入一个字符串 xff0c 其包括数字和非数字字符 xff0c 如 xff1a a123x456 17935 098tab xff0c 将其中连续的数字作为一个整数 xff0c 依次存放到数
  • 富斯i6B接收机与pixhawk连接

    pix接收PPM编码信号 xff0c 传统PWM接收器不能直接接收 xff08 例如FS ia6 xff09 xff0c 通常需要PWM转PPM转接板 xff0c 或者直接采用PPM输出的接收器 xff08 例如FS ia6B xff09
  • mission planner飞行模式设置

    我采用的富斯i6遥控器 xff0c 可以设置三种飞行模式 飞行模式中有六种模式 xff0c 在哪三个通道设置会与遥控器对应呢 xff1f 首先在 遥控器校准 选 项观察切换遥控器 模式时 输出的pwm值 xff1a 三个值分别为1000 1
  • ArduPilot Tutorial(PDF版)及ArduPilot飞行模式介绍

    ArduPilot官方Tutorial PDF 2017 2 http download csdn net download xiaoshuai537 10262086 ArduPilot中有14种常用的模式 xff1a 依赖GPS的模式有
  • PX4飞行模式-多旋翼

    手动模式 xff08 1 xff09 ARCO xff1a 特技模式 遥控器输入被转换为横滚 俯仰和偏航速度 xff0c 当摇杆回中时飞行器不会保持平衡 xff0c 可以用于翻滚等特技飞行 xff08 2 xff09 RATTITUDE x
  • 《PID控制算法的C语言实现》学习笔记

    1 PID算法原理 如果偏差为0 xff0c 则比例环节不起作用 xff1b 积分环节主要是用来消除静差 xff0c 即系统稳定后输出值和设定值之间的差值 xff1b 微分环节则反映了偏差信号的变化规律 xff0c 根据偏差信号的变化趋势来
  • 跟我一起写Makefile(整理版)

    跟我一起写Makefile 陈皓 xff08 博客地址 xff1a http blog csdn net haoel article details 2886 xff09 整理的PDF文件 xff1a http download csdn
  • PX4 Makefile分析解读

    参考文章 xff1a PX4源码的Makefile详细理解 http blog csdn net linkcian article details 79152724 感谢原文作者 主要分析 make px4fmu v2 default编译流
  • CREO工程图学习笔记

    CREO工程图技术手册 学习笔记 1 小功能 不同窗口切换操作 xff1a 视图 激活 材料设置 xff1a 文件 准备 模型属性 2 视图创建 插入视图 xff1a 图纸上长按右键 插入普通视图插入投影视图 xff1a 选择母视图 xff
  • 操作系统清华向勇陈渝版笔记(七) 进程与线程 PCB TCB 进程挂起 用户线程 内核线程 轻量级进程 僵尸队列

    7 1 进程定义 OS系统从只能跑一个程序到能跑多个 进程可以描述程序的执行过程 进程 xff1a 一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程 只有当一个程序被OS加载到内存中 xff0c cpu对其执行时 xff0c 这
  • 基于stm32F103HAL库+cubemx+freertos无感无刷电机BLDC控制程序开发

    基于stm32F103HAL库 43 cubemx 43 freertos无感无刷电机BLDC控制程序开发 最近在做一个舵机控制项目 xff0c 控制对象为大功率无感无刷电机 xff0c 网上搜遍了资源 xff0c 貌似这方面的资源真得十分
  • C++思路

    1 统计英文单词 在进行文章重复度检查时 xff0c 经常需要统计一段英文中的单词数量 xff0c 并找出长度最长的单词 设有如下定义 xff1a char str 500 编写程序 xff0c 通过利用cin getline str 50
  • 基于OpenCV构建停车场车位识别项目

    OpenCV是一个基于 xff08 开源 xff09 发行的跨平台计算机视觉库 xff0c 能实现图像处理和计算机视觉方面的很多通用算法 车位识别的图像处理过程如图所示 在python中设置完所有内容后 xff0c 最重要的依赖关系将是Op
  • 学生成绩管理系统-python

    乱写的成绩管理系统 派森 span class token comment 定义学生类型 姓名 学号 科目 span span class token keyword class span span class token class na
  • 11_3、Java集合之迭代器Iterator接口

    一 引入 Iterator对象称为迭代器 设计模式的一种 xff0c 主要用于遍历 Collection 集合中的元素 GOF给迭代器模式的定义为 xff1a 提供一种方法访问一个容器 container 对象中各个元 素 xff0c 而又
  • 进程切换和进程调度的区别

    进程切换和进程调度的区别 调度是决定将系统资源分配给哪个进程 xff0c 进程切换是实际分配系统资源 另外需要注意进程切换一定会产生中断 xff0c 进行处理器模式切换 xff0c 即从用户态进入内核态 xff0c 之后又回到用户态 xff
  • 树莓派3b+安装ubuntu server,安装mysql

    1 下载镜像 http cdimage ubuntu com ubuntu releases 18 04 5 release ubuntu 18 04 5 preinstalled server arm64 43 raspi3 img xz
  • 【GVINS初体验】

    在Ubuntu18 04下跑通GVINS GVINS介绍 环境配置 1 C 11编译器 2 ROS 3 Eigen 4 Ceres 5 gnss comm Build GVINS 跑VINS啦 GVINS介绍 GVINS是一个基于非线性优化

随机推荐

  • 【OpenCV】基于Adaboost和Haar-like特征人脸识别

    毕设算是告一段落 xff0c 里面用了一点点人脸识别 xff0c 其实完全是OpenCV自带的 xff0c 源自两篇论文 xff1a P Viola and M Jones Rapid object detection using a bo
  • Jetson Tx2上跑MYNT_EYE的ORB SLAM示例

    愁呀 xff0c 按照官网的说明文档 xff0c 好长时间郁闷在跑不起来 每次都是在加载词袋时报bad malloc 打开MYNT EYE ORB SLAM2 Sample Vocabulary ORBvoc txt词袋看见1082073行
  • 解决ST-LINK无法连接设备(解决不了你顺着网线来打我)

    问题分析 问题描述 在mdk中 xff0c 点击下载按钮提示找不到目标设备 xff0c 无法自动下载程序 原因猜想 单片机只有在停止状态下才可以下载程序 xff1f 猜想验证 如果让单片机处在停止状态 xff0c 是不是就能正常下载了呢 x
  • tensorflow 利用tfrecords文件制作数据集

    TensorFlow之tfrecords文件详细教程 制作数据集思路 xff1a 将训练数据和测试数据生成tfrecords文件 为什么呢 xff1f 这种文件以二进制进行存储 xff0c 只占用一个内存块 对于大数据能够提高cpu效率 代
  • 解决mininet运行报错“ImportError: No module named mininet.log”

    解决mininet运行报错 ImportError No module named mininet log 运行环境 系统Ubuntu 04 安装Mininet 2 3 0d6问题描述 运行miniedit py时报错ImportError
  • C++ 用结构体和类创建单向链表

    一 结构体 include lt iostream gt using namespace std 一个链表要实现的操作有 建立链表 xff0c 遍历链表 xff0c 查找链表 xff0c 插入和删除节点 查找和遍历某种程度上来说是一样的 x
  • 巨星星座paper研究

    巨星星座paper研究 ICM1篇 Exploring the Internet from space with Hypatia Hypatia论文 xff1a 摘要 xff1a Hypatia 提出了一个框架 xff0c 通过结合这些星座
  • Ubuntu20.04中安装ns3网络仿真器

    前言 我的环境 Ubuntu 20 04 xff0c 安装的是ns3 3 33 1 安装前的准备工作 建议先了解一下ns3的文件结构 参考博客 xff1a https blog csdn net sinat 36418396 article
  • ubuntu 20.04配置ssh远程root连接

    ubuntu 20 04配置ssh远程服务 1 开启服务 etc init d ssh start 查看ssh服务状态 sudo service ssh status 正常是active xff08 running xff09 2 修改ss
  • docker 遇到的问题

    docker stop container id 失败 显示 root 64 docker stop onos1 Error response from daemon cannot stop container onos1 permissi
  • docker ubuntu20.04 dockerfile 换源

    dockerfile 换源 FROM ubuntu 20 04 ARG span class token assign left variable DEBIAN FRONTEND span span class token operator
  • Prometheus普罗米修斯-入门

    Promethus 普罗米修斯 xff09 适合k8s和docker的监控系统 功能 能够安装prometheus服务器 能够通过安装node exporter监控远程linux 能够通过安装mysqld exporter监控远程mysql
  • 数据库操作

    ubt1804 安装mqsql span class token function apt span span class token function install span mysql server span class token
  • 图的邻接表存储及图的遍历(DFS)

    图的表示方式 邻接矩阵 xff1a G N N xff0c 适合稠密图 xff0c 占用空间大 xff0c O N N 邻接表 xff1a 存储稀疏有向图 xff0c 避免空间浪费十字链表 xff1a 针对有向图 xff0c 把邻接表和逆邻
  • HTML5详细介绍及使用

    HTML5详细介绍及使用 一 HTML5简介 1 HMTL5的定义 HTML是一种用符号来创建结构文档的语义 比如标题 章节 列表 链接 引用和其他各种元素都可以包含在结构文档中 HTML5在W3C中的定义 xff1a HTML 5 是下一
  • AE10.0开发时 System.ComponentModel.LicenseException' occurred in system.windows.forms.dll

    刚开始是System ComponentModel ISupportInitialize this axMapControl1 EndInit 出现问题 后来又出现system windows forms dll 中类未注册 xff0c 您
  • 数据结构学习

    四 树 所有的二叉链表都基于二叉树结点的基本定义 class BinTreeNode public int data BinTreeNode leftChild BinTreeNode rightChild BinTreeNode T n
  • 在线解析二进制报文

    现状 智能设备应用越来越普遍 xff0c 深入到生活的各个方面 xff0c 从智慧农业到智能制造 xff0c 从水利灌溉到电力传输 xff0c 从工业生产到智能家居 智能设备应用在各个领域 xff0c 设备之间都是通过数据交换来达到信息共享
  • 接收和处理客户投诉流程

    接收和处理客户投诉的流程一般包括九个步骤 xff1a 第一个步骤 xff1a 倾听客户的投诉事项和内容 xff1a 耐心和仔细地倾听客户投诉的具体事项和内容 xff1b 第二个步骤 xff1a 复述并确认客户的投诉事项和内容 xff1a 用
  • 如何理解Mapper LongWritable, Text, Text, IntWritable 和Reducer Text, IntWritable, Text, IntWritable

    案例 xff1a WorkCount lt key value gt key xff1a 文件中的行的偏移量 value xff1a 行中的数据 Mapper span class token keyword import span jav