项目需求#求出每一个订单中成交金额最大的三笔
本质:求分组topn
#原始订单数据a.txt
----------------------------------------
订单号,用户id,商品名称,单价,数量
order001,u001,手机14,7999.8,2
order001,u001,手机13,6999.8,2
order001,u001,牛奶,79.2,1
order001,u001,大米,59.8,3
order002,u002,大米,69.9,1
order002,u002,香水,559.9,1
order002,u002,苹果,199.6,3
order002,u002,大米,59.8,3
order002,u002,冰箱,3959.8,1
--------------------------------------
思路:
map:读取数据切分字段,封装数据到一个bean中作为key传输,key要按照金额成交额比大小;
reduce:利用自定义的GroupingComparator将数据按订单id进行分组,然后在reduce方法中输出每组数据的前N条即可。
输出结果
----------------------------------------
order002,u002,冰箱,3959.8,1,3959.8
order002,u002,苹果,199.6,3,598.8
order002,u002,香水,559.9,1,559.9
版权声明:本文为Aoico原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。