分组排序案例分析| 学习笔记

简介: 快速学习分组排序案例分析

开发者学堂课程【Hadoop 分布式计算框架 MapReduce:分组排序案例分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/94/detail/1529


分组排序案例分析


简介:

1、GroupingComparator 分组(辅助排序)

2、MapReduce 详细工作流程(二)

3、GroupingComparator 分组案例实操

 

1.GroupingComparator 分组(辅助排序)

对 Reduce 阶段的数据根据某一个或儿个字段进行分组。

分组排序步骤:

(1)自定义类继承 WritableComparator

(2)重写 compare() 方法

@override

public int compare(WritableComparable a,writableComparable b)

{

//比较的业务逻辑

sreturn result;

}

(3)创建一个构造将比较对象的类传给父类

protected orderGroupingComparator () {

super (orderBean.class, true) ;

}


2.MapReduce 详细工作流程(二)

图片17.png


3.GroupingComparator 分组案例实操

1、需求

有如下订单数据

图片18.png

现在需要求出每一个订单中最贵的商品

(1)输入数据

图片19.png

(2)期望输出数据

1    222.8

2    722.4

3    232.8

2、需求分析

(1)利用“订单 id 和成交金额”作为 key,可以将 Map 阶段读取到的所有订单数据按照 id 升序排序,如果 id 相同再按照金额降序排序,发送到 Reduce。

(2)在 Reduce 端利用 groupingComparator 将订单 id 相同的 kv 聚合成组,然后取第一个即是该订单中最贵商品,如图所示:

图片20.png

相关文章
|
7月前
|
Serverless Python
分组和聚合DataFrame信息案例解析
该文介绍了如何使用pandas对DataFrame进行分组和聚合操作。首先,通过创建字典并转换为DataFrame,展示了基础数据结构。接着,利用`groupby()`方法按城市字段进行数据分组,然后应用`mean()`函数计算各城市平均年龄,显示了聚合功能。此外,文中指出还可使用`sum()`、`count()`等其他聚合函数处理分组数据。
79 0
各种基础排序的超详细解析及比较
各种基础排序的超详细解析及比较
41 0
|
5月前
去重Cube的优化实践问题之直接计算去重类指标的方法具体问题如何解决
去重Cube的优化实践问题之直接计算去重类指标的方法具体问题如何解决
|
6月前
|
Java BI Serverless
Java8 Stream深度解析:30个案例3万字助你精通集合筛选、归约、分组与聚合操作
Java8 Stream深度解析:30个案例3万字助你精通集合筛选、归约、分组与聚合操作
|
SQL 数据库管理 索引
SQL基础——聚合与排序(下)
SQL基础——聚合与排序(下)
168 0
|
存储 移动开发 算法
八大排序(一)--------排序的基本概念与分类
八大排序(一)--------排序的基本概念与分类
75 0
|
SQL
SQL基础——聚合与排序(上)
SQL基础——聚合与排序(上)
74 0
|
数据挖掘
白话Elasticsearch43-深入聚合数据分析之案例实战__排序:按每种颜色的平均销售额升序排序
白话Elasticsearch43-深入聚合数据分析之案例实战__排序:按每种颜色的平均销售额升序排序
85 0
|
SQL 移动开发 BI
【SQL开发实战技巧】系列(二十三):数仓报表场景☞ 如何对数据排列组合去重以及通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高
怎样对数据组合重新排列并去重的问题、通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。本篇文章主要介绍的两个方面,第一个方面曾经有好几个网友和同事问我,第二个问题真的是很多同行的通病,认为分析函数是万金油,一股脑用。
【SQL开发实战技巧】系列(二十三):数仓报表场景☞ 如何对数据排列组合去重以及通过如何找到包含最大值和最小值的记录这个问题再次用执行计划给你证明分析函数性能不一定高
|
关系型数据库 MySQL 数据库
MySql基础-笔记6 -排序、分组、连接的使用、NULL值处理
MySql基础-笔记6 -排序、分组、连接的使用、NULL值处理
198 0
MySql基础-笔记6 -排序、分组、连接的使用、NULL值处理