WritableComparable排序案例(区内排序)

  • 需求
    • 1. 需求说明
    • 2. 文件
  • 案例分析
    • 1. 需求分析
    • 2. 输入数据
    • 3. 期望输出数据
    • 4. 实现基于WritableComparable排序案例(全排序)
    • 5. 增加自定义分区类
  • 代码实现
    • 1.基于WritableComparable全排序
    • 2.增加自定义分区类
    • 3. 修改Driver类

需求

1. 需求说明

要求每个省份手机号(前三位手机号决定省份)输出的文件中按照总流量内部排序

2. 文件

案例分析

1. 需求分析

在全排序的基础上增加自定义分区类,分区按照省份手机号设置。

2. 输入数据

3. 期望输出数据

4. 实现基于WritableComparable排序案例(全排序)

WritableComparable排序案例(全排序)实现过程

5. 增加自定义分区类

自定义分区类ProvincePartitioner继承Partitioner

代码实现

1.基于WritableComparable全排序

WritableComparable排序案例(全排序)实现过程

2.增加自定义分区类

package com.atguigu.mr.sort;import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner;public class ProvincePartitioner extends Partitioner<FlowBean, Text>{@Overridepublic int getPartition(FlowBean key, Text value, int numPartitions) {//按照手机号前三位进行分区String prePhoneNum = value.toString().substring(0,3);int partition = 4;if ("136".equals(prePhoneNum)) {partition = 0;}else if ("137".equals(prePhoneNum)) {partition = 1;}else if ("138".equals(prePhoneNum)) {partition = 2;}else if ("139".equals(prePhoneNum)) {partition = 3;}return partition;}}

3. 修改Driver类

在Driver添加分区类,增加的代码如下

 //关联分区job.setPartitionerClass(ProvincePartitioner.class);// 设置Reducetask个数job.setNumReduceTasks(5);

结果截图



WritableComparable排序案例(区内排序)相关推荐

  1. WritableComparable排序案例(全排序)

    WritableComparable排序案例(全排序) 需求 1. 需求说明 2. 文件 案例分析 1. 需求分析 2. 输入数据 3. 期望输出数据 4. FlowBean类 5. Mapper类 ...

  2. js时间-价格-排序案例____冒泡排序实例

    js 时间-价格-排序,静态页面排序案例 冒泡排序实例 在项目中用到的一个例子,分享一下. var sort = { sortdata : '',      //排序之前必须先填充原始数据 //来源我 ...

  3. 函数模板案例—选择排序

    案例描述: 1.利用函数模板封装一个排序算法,可以对不同数据类型数组进行排序 2.排序规则从大到小,排序算法为选择排序 3.分别利用char数组和int数组进行测试 #include<iostr ...

  4. 分享一个有趣的shell脚本--单词及字母去重排序案例

    概述 今天主要分享一个用shell脚本来实现单词及字母去重排序案例,下面一起来看下吧~ 需求 1.按单词出现频率降序排序! 2.按字母出现频率降序排序! 相关文本: the squid project ...

  5. Vue中使用andt组件a-table列表数据根据点击的表头进行升/降排序-案例

    官方示例-API链接 数据根据当前点击的内容进行升降排序 使用步骤 数据量过少,可以使用前端排序方式 //官方案例 <template><a-table :columns=" ...

  6. //排序案例//按照年龄进行升序,年龄相同按照身高降序

    ///排序案例 //按照年龄进行升序,年龄相同按照身高降序 #include<iostream> #include<string> #include<list> u ...

  7. C++ list 排序案例

    代码如下: #include<iostream> using namespace std; #include<string> #include<algorithm> ...

  8. python set 排序_python set 排序_如何在Python中使用sorted()和sort()

    点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基  著 18财税3班 李潇潇    译 日期:2019年5月6日 一. 使用sorted() ...

  9. 排序算法:桶排序、计数排序、基数排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 这篇博客将主要介绍三种时间复杂度是 ...

最新文章

  1. 别忘了在使用MES系统之前,还有关键一步!
  2. cocos2dx 3.3 Director setNotificationNode BUG
  3. iOS 直接使用16进制颜色
  4. 详细解析Linux /etc/passwd文件
  5. ubuntu nginx添加站点配置失效处理
  6. 一加手机安装鸿蒙系统,【新机】华为MatePad Pro 2官宣,刘作虎点赞鸿蒙手机
  7. JAVA EE 开发中 常用的API包
  8. Git Your branch is ahead of ‘origin/master‘ by X commits解决方法
  9. Xcode 6 免证书真机调试
  10. OUC_Summer Training_ DIV2_#11 722
  11. Android-关于屏幕适配的一些经验
  12. 模型的泛化能力--正则化
  13. matlab绘画复指数函数,MATLAB | 绘制复指数函数 y = exp(j*w*n)的三维图像
  14. 2 年前端面试心路历程总结(字节跳动、YY、虎牙、BIGO)
  15. Final Cut Pro X 精选插件合集!
  16. redis 如何切换db
  17. 大数据之Hadoop学习——动手实战学习MapReduce编程实例
  18. python爬虫找漫画出现断章?那你就得看这篇爬虫思想教学咯!
  19. Kafka+zookeeper集群搭建
  20. JavaSE_第4章 数组

热门文章

  1. 【 FPGA 】Vivado中常用的5个Tcl命令
  2. 【Verilog HDL】参数(Parameter)的作用案例
  3. C enum(枚举)
  4. 运维的shell小编(1)
  5. koa源码阅读之koa-compose/application.js
  6. 实现DataGridView和DevExpress.GridControl表头全选功能
  7. 无线网络(5) 无线网络安全性
  8. IBM Rev2.6公包主板的问题
  9. 4.2 路由算法与路由协议概述
  10. ADC和DAC常用技术术语