加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2022-12-06 17:02:33 所属栏目:大数据 来源:未知
导读: WritableComparable排序案例实操(区内排序)
1.需求
要求每个省份手机号输出的文件中按照总流量内部排序。
2.需求分析
基于前一个需求,增加自定义分区类大数据排序,分区按照省份手机号

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 {

@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);

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!