大数据培训之WritableComparable排序案例实操(区内排序)

1.需求

要求每个省份手机号输出的文件中按照总流量内部排序。

2.需求分析

       基于前一个需求,增加自定义分区类,分区按照省份手机号设置。

大数据培训

3.案例实操

(1)增加自定义分区类

package com.atguigu.mapreduce.sort;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Partitioner;

public class ProvincePartitioner extends Partitioner<FlowBean, Text> {

  @Override

  public int getPartition(FlowBean key, Text value, int numPartitions) {    

     // 1 获取手机号码前三位

     String preNum = value.toString().substring(0, 3);    

     int partition = 4;  

     // 2 根据手机号归属地设置分区

     if (“136”.equals(preNum)) {

        partition = 0;

     }else if (“137”.equals(preNum)) {

        partition = 1;

     }else if (“138”.equals(preNum)) {

        partition = 2;

     }else if (“139”.equals(preNum)) {

        partition = 3;

     }

     return partition;

  }

}

(2)在驱动类中添加分区类

// 加载自定义分区类

job.setPartitionerClass(ProvincePartitioner.class);

// 设置Reducetask个数

job.setNumReduceTasks(5);

想要了解跟多关于大数据培训课程内容欢迎关注尚硅谷大数据培训,尚硅谷除了这些技术文章外还有免费的高质量大数据培训课程视频供广大学员下载学习


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:info@atguigu.com
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)