一、MR案例-分组
1.1、分组需求
-
分区和分组的区别
-
分区:将相同的 k2的数据,发送给同一个 reducer 中,这个操作是在 map端执行
-
分组:将相同的 k2的值进行合并形成一个集合操作,在 reduce 中对同一个分区下的数据进行分组操作。
-
-
案例:需求:
-
现在需要求出每一个订单中成交金额最大的一笔交易,将结果集存储到2个文件。
-
-
数据
订单id 商品id 成交金额
Order_0000005 Pdt_01 222.8
Order_0000005 Pdt_05 25.8
Order_0000002 Pdt_03 322.8
Order_0000002 Pdt_04 522.4
Order_0000002 Pdt_05 822.4
Order_0000003 Pdt_01 222.8
思路
-
如果使用 SQL 怎么写?
select 订单id,max(成交金额) from 订单表 group by 订单id
-
使用mapreduce 怎么来实现呢?
1.2、代码实现