大数据全系列 教程
1869个小节阅读:467.2k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
##6.1需求
找出每个月温度最高的两天
##6.2数据集
xxxxxxxxxx
2019-10-01 14:21:02 37c
2019-10-01 19:21:02 38c
2019-10-02 14:01:02 36c
2019-10-03 14:01:02 35c
2020-01-01 11:21:02 32c
2020-10-01 12:21:02 37c
2018-12-01 12:21:02 23c
2020-10-02 12:21:02 41c
2020-10-03 12:21:02 27c
2018-07-01 12:21:02 45c
2018-07-02 12:21:02 46c
2018-07-03 12:21:03 47c
##6.3案例分析
在MR中,原语是“相同”key的键值对为一组,调用一次reduce方法,方法内迭代这组数据计算。需要自定义分组比较器。(相同的年月分为一组)
找出每个月温度最高的两天(自定义排序比较器:年月相同时按照温度从高到低排序)
二次排序,分组比较器和排序比较器不一样
map:key ->LongWritable (偏移量)
value-> Text (文本中的一行内容)
日期+气温 将value中的指标拿出来组成一个新的key:自定义Weather类
分组的时候,需要将新的key拆开来比较
自定义key的类:Weather(还需要实现序列化和反序列化)
###6.3.1 提示一
1,MR
*保证原语
怎样划分数据,怎样定义一组(年月相同的为一组,所以需要自定义分组比较器)
2,k:v映射的设计
考虑reduce的计算复杂度
3,能不能多个reduce
倾斜:抽样
集群资源情况
4,自定义数据类型
###6.3.2 提示二
记录特点
每年 每个月 最高 2天
1天多条记录?
进一步思考
年月分组
温度降序
key中要包含日期和温度!
MR原语:相同的key分到一组: 通过GroupCompartor设置分组规则