5.7 MR案例—TopN

目录

零、学习目标

一、导入新课

二、新课讲解

(一)案例分析

1、TopN分析法介绍

2、案例需求及分析 

(二)案例实现

1、准备数据文件

2、Map阶段实现 

3、Reduce阶段实现 

4、Driver程序主类实现

5、运行前N驱动器类,查看结果


零、学习目标

  1. 理解TopN分析法
  2. 实现TopN分析法

一、导入新课

  • 通过上节课的学习,我们熟悉了MapReduce经典案例——数据去重的具体实现流程。本节课将针对MapReduce经典案例——TopN进行详细讲解。

二、新课讲解

(一)案例分析

1、TopN分析法介绍

  • TopN分析法是指从研究对象中按照某一个指标进行倒序或正序排列,取其中所需的N个数据,并对这N个数据进行重点分析的方法。

2、案例需求及分析 

现假设有数据文件num.txt,现要求使用MapReduce技术提取上述文本中最大的5个数据,并最终将结果汇总到一个文件中。
先设置MapReduce分区为1,即ReduceTask个数一定只有一个。我们需要提取TopN,即全局的前N条数据,不管中间有几个Map、Reduce,最终只能有一个用来汇总数据。
在Map阶段,使用TreeMap数据结构保存TopN的数据,TreeMap默认会根据其键的自然顺序进行排序,也可根据创建映射时提供的 Comparator进行排序,其firstKey()方法用于返回当前集合最小值的键。
在Reduce阶段,将Map阶段输出数据进行汇总,选出其中的TopN数据,即可满足需求。这里需要注意的是,TreeMap默认采取正序排列,需求是提取5个最大的数据,因此要重写Comparator类的排序方法进行倒序排序.

(二)案例实现

1、准备数据文件

  • 启动hadoop服务

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值