odps mapreduce学习笔记
一、map函数
//record表示输入表的每一行记录public void map(long recordNum, Record record, TaskContext context) throws IOException {for (int i = 0; i < record.getColumnCount(); i++) {//遍历每一列String[] words = record.get(i).toString().split("\\s+");for (String w : words) {word.set(new Object[] {w});context.write(word, one);}}}
参数:
1、recordNum表示: 当前输入是第几行记录?
2、record表示:表格的每一行记录。在map函数中,record代表读入的一行数据,可以通通过record.get(n)方法获取该行记录第n列的数据。并且方便的是,这里可以直接对读入的数据进行一个类型转换。例如record.getString()会把读入的数据转为字串,record.getBigInt()则会把读入的数据转为Long型整数。
3、context:每调用一次write函数,就会输出一行记录。context.write(key,value)的意思是输出这条key-value,如果不写这行,Mapper就什么都不输出。一个Mapper可以有0个或多个key-value的输出,每调用一次context.write(key,value)就会输出一行。
二、reduce函数
//输入map阶段每个key,以及每个key对应的多个values
public void reduce(Record key, Iterator<Record> values, TaskContext context) throws IOException {long count = 0;while (values.hasNext()) {Record val = values.next();count += (Long) val.get(0);}result.set(0, key.get(0));//设置第一列为keyresult.set(1, count);//设置第二列为countcontext.write(result);//添加本条记录
}
参数:
1、key:对应到map阶段输出每个key;
2、values参数:是一个Iterator,通过调用values.next()来读取所有属于该key的记录。每读取一行记录,可进行相应操作;
3、输出context:Reducer的output是一个Record类,可以通过output.set(n)来设定该output第n列的数值,同样使用context.write(output)输出一行记录。
参考资料:
https://www.zybuluo.com/chanvee/note/11984
odps mapreduce学习笔记相关推荐
- MapReduce学习笔记(1)
MapReduce学习笔记 1. MapReduce编程模型- Hadoop架构 1.1 Map阶段 1.2 Reduce阶段 1.3 MapReduce模型图 2. MapReduce编程示例 2. ...
- Hadoop之MapReduce学习笔记(二)
主要内容: mapreduce编程模型再解释: ob提交方式: windows->yarn windows->local : linux->local linux->yarn: ...
- MapReduce学习笔记(4)
现在正式开始编写MapReduce程序. 1.专利数据集 这里我们使用专利数据集作为hadoop的输入数据.数据集可以从美国国家经济研究局获得:http://www.nber.org/patents/ ...
- MapReduce学习笔记(7)—— 寻找共同好友
1 数据 冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的).求出哪些人两两之间有共同好友,及他俩的共同好友都有谁? A:B,C,D,F,E,O B:A,C,E,K C:F,A,D ...
- Hadoop学习笔记—4.初识MapReduce
一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个 编程模型 ,用以进行大数据量的计算.对于大 数据量的计算,通常采用的处理手法就是并行计算.但对许多开 ...
- Hadoop学习笔记—11.MapReduce中的排序和分组
Hadoop学习笔记-11.MapReduce中的排序和分组 一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出 ...
- Hadoop学习笔记一 简要介绍
Hadoop学习笔记一 简要介绍 这里先大致介绍一下Hadoop. 本文大部分内容都是从官网Hadoop上来的.其中有一篇介绍HDFS的pdf文档,里面对Hadoop介绍的比较全面了.我的这一 ...
- 调度框架学习笔记(3)—— 集群调度框架的架构演进过程
本章是 The evolution of cluster scheduler architectures 文章的学习笔记.这篇文章讨论了这些年调度架构是如何发展的以及为什么会这样发展. 首先介绍一下这 ...
- Hadoop学习笔记(1) ——菜鸟入门
Hadoop学习笔记(1) --菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户能够在不了解分布式底层细节的情况下.开发分布式 ...
最新文章
- echart 折线图设置y轴单位_echarts折线图有两个图例时如何实现分别采用两个不同单位的y轴...
- 判断元素是否在ndarray_暨南大学药学院考研~手性的判断与相关介绍
- ubuntu 安装 postgres
- 修改IIS7并发连接数目限制
- 用php+ajax+echarts.js 实现统计每分钟答题曲线图
- 360画报屏保,放大营销“感官力”
- php 属性名字访问,php – 如何使用连字符的名称访问此对象属性?
- AcWing 868. 筛质数(欧拉筛模板)
- 没有microsoft store(微软商店)或下载过慢解决方法
- 【CAD技巧】CAD字体文字乱码(回复“CAD字体大全”)
- 拼多多登录不上是什么原因 怎么解决拼多多登录失败
- 微软和美国航空航天局(NASA)强强联手,推出Python免费课程
- 自走棋突然显示服务器无法定位,刀塔自走棋服务器无法定位游戏会话_刀塔自走棋服务器无法定位游戏会话怎么回事_玩游戏网...
- 路飞学城-Python开发-第一章
- 梦开始的地方——VS2019调试技巧
- Docker直接删除elasticsearch报错:Failed to obtain node locks
- SMART 监控项研究以及存储健康分级机制
- FITC-PEG-FA,荧光素-聚乙二醇-叶酸,FA-PEG-FITC,实验室科研试剂,提供质量检测
- 尚硅谷 --佟刚 SpringData JPA
- 【错误记录】Android Studio 中 Gradle 配置报错 ( Can‘t determine type for tag ‘<item name=““ type=“String“>)
热门文章
- php语法中可以输出调试信息,怎么优雅的输出PHP调试信息
- php用户名登录名_PHP验证登录用户名和密码
- python分为哪几个模块_干货:入门Python重点学哪几个模块才能成为高手?
- Java的 published_Umbraco当没有当前的PublishedContentRequest时,无法呈现宏
- 同网段DHCP配置实验
- jumpserver(0.3.2版本)开源跳板机系统部署
- BZOJ 4242 水壶(BFS建图+最小生成树+树上倍增)
- HTML5----热区(在图片img上第一超链接选区)
- div.2/C. They Are Everywheretwo pointer
- 利用递归级联删除的代码