项目需求#求出每一个订单中成交金额最大的三笔

本质:求分组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

hadoop3-求分组topn相关推荐

  1. Spark使用RDD实现分组topN(八种方法)

    最近在复习Spark,记录一个使用RDD实现分组topN的方法,一共写了八种,其中有很多地方都是有共性的,我会在代码最后进行总结八种的思路,他们之间的共性以及每一种的优缺点. 以下是样例数据 语文,赵 ...

  2. MySQL各部门求最值_mysql 求分组最大值的十个解法

    mysql 求分组最大值的十个解法 发布时间:2020-08-08 23:32:28 来源:51CTO 阅读:1383 作者:努力的C "How to solve the same prob ...

  3. java mongo分组统计_mongodb 分组 topN

    [摘要] MongoDB 对于 TopN 功能的需求使用其 shell 脚本来实现有些复杂,而集算器 SPL 语言,则因其离散性.灵活性恰好能弥补 MongoDB 实现方面的不足.若想了解更多,请前往 ...

  4. 3、流量分析--分组TopN统计

    流量分析--分组TopN统计 ===================================================================================== ...

  5. GroupingComparator分组(辅助排序)的作用以及通过GroupingComparator实现分组topN

    mapreduce框架在记录到达reducer之前按照键值对记录排序,但是键所对应的值并没有排序.甚至在不同的执行轮次中,这些值的排序也不固定,因为他们来自不同的map任务且这些map任务在不同的轮次 ...

  6. java group by_Java实现GroupBy/分组TopN功能

    详情 在Java 8 的Lambda(stream)之前,要在Java代码中实现相似SQL中的group by分组聚合功能,还是比较困难的.这之前Java对函数式编程支持不是很好,Scala则把函数式 ...

  7. SQLServer游标简单应用(求分组最小值问题)

    前面http://www.cnblogs.com/raymond19840709/archive/2008/02/26/1082377.html 也有提到相关的问题解决方法,但是不适用于解决以下此类的 ...

  8. 7.统计UV、分组TopN

    有50w个京东店铺,每个顾客访问任何一个店铺的任何一个商品时都会产生一条访问日志,访问日志存储的表名为Visit,访客的用户id为user_id,被访问的店铺名称为shop,数据如下: 请统计: (1 ...

  9. sql server求分组最大值,最小值,最大值对应时间,和最小值对应时间

    先创建Students表 CREATE TABLE [dbo].[Students]( [Id] [int] IDENTITY(1,1) NOT NULL, [age] [int] NULL, [na ...

最新文章

  1. leetcode算法题--可被三整除的最大和
  2. Leetcode: Remove Element
  3. js数据类型判断和数组判断
  4. 用服务器控件在后台调用前台客户端JS方法
  5. oracle10递归 nocycle,oracle 使用递归的性能提示测试对比
  6. 企业邮箱服务器删除邮件,企业邮箱Webmail对邮件进行删除或者清空邮件的方法...
  7. 一个服务器多个网站多个域名,多个域名一个服务器吗
  8. zabbix监控添加主机,报警、监控的设置
  9. ofo 列入被执行人;摩拜 LV 跨界合作;iPhone X 遭黑客攻击 | 极客头条
  10. oracle10自动扩分区,Oracle 11g数据库的分区表扩展(按年度)
  11. Idea全部快捷键+自行修改快捷键
  12. 17-sendto函数和异步错误
  13. wifi分析仪是什么?
  14. Linux操作系统与Shell编程
  15. java中long=后面为什么还要加个L
  16. 3d编辑器的gizmo的缩放计算
  17. 最优布线问题 题解
  18. C语言位运算的高级应用(尤其适合单片机和嵌入式编程)
  19. c4.5决策树算法python_Python3实现机器学习经典算法(四)C4.5决策树
  20. python中矩阵的表示方法_在python中创建数字的二进制表示形式的矩阵 - python

热门文章

  1. 人工智能的三个层次:运算智能,感知智能,认知智能
  2. Cordova搭载——H5开发环境
  3. docker+阿里云镜像服务
  4. 信管家源代码c语言,AK老唐信管家软件指标 宝塔线副图源码
  5. 个人养老金制度内容分析解读
  6. java中的math.abs_java – Math.abs(a – b)的更快实现 – Math.abs(c – d)?
  7. 三创赛历年优秀作品资料整理
  8. java讲座总结报告_20175313 张黎仙《Java综合讲座》第十三周课堂测试总结
  9. Linux Ext2文件系统
  10. React 安装及创建项目