MapReduce处理数据去重与数据排序
来源:互联网 发布:软件资格水平考试 编辑:程序博客网 时间:2024/04/29 09:19
一:MapReduce处理数据去重
Map的key具有数据去重的功能
/* * 去除数据中相同数据 * 数据去重问题 * 以整个数据作为key发送出去, value为null */public class DelsameMap extends Mapper<LongWritable, Text, Text, Text> {@Overrideprotected void map(LongWritable key, Text value,Mapper<LongWritable, Text, Text, Text>.Context context)throws IOException, InterruptedException {String line = value.toString();if (line.length() > 0) {context.write(new Text(line.trim()), new Text(""));}}}
public class DelsameRedu extends Reducer<Text, Text, Text, NullWritable> {@Overrideprotected void reduce(Text key, Iterable<Text> values,Reducer<Text, Text, Text, NullWritable>.Context context)throws IOException, InterruptedException {context.write(key, NullWritable.get());}}
public class DelsameMain {public static void main(String[] args) throws Exception {Configuration conf = new Configuration();Job job = new Job(conf);job.setJarByClass(DelsameMain.class);job.setMapperClass(DelsameMap.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(Text.class);job.setReducerClass(DelsameRedu.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(NullWritable.class);FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));job.waitForCompletion(true);}}
二:MapReduce处理数据排序
将原始数据作为map输出的key设置为int类型。map会自动的根据key进行排序
/* * mapreduce处理数据排序 *将原始数据作为map输出的key设置为int类型。map会自动的根据key进行排序 */public class SortMap extends Mapper<LongWritable, Text, IntWritable, Text> {@Overrideprotected void map(LongWritable key, Text value,Mapper<LongWritable, Text, IntWritable, Text>.Context context)throws IOException, InterruptedException {String line = value.toString();if (line.length() > 0) {context.write(new IntWritable(Integer.parseInt(line.trim())),new Text(""));}}}
/* * 将values作为次序key。将map排序好的key作为value输出 */public class SortRedu extendsReducer<IntWritable, Text, IntWritable, IntWritable> {private IntWritable num = new IntWritable(1);@Overrideprotected void reduce(IntWritable key, Iterable<Text> values,Reducer<IntWritable, Text, IntWritable, IntWritable>.Context context)throws IOException, InterruptedException {// 将values作为排序的次序。将map拍好序的key作为reduce的value输出for (Text val : values) {context.write(num, key);num = new IntWritable(num.get() + 1);}}}
public class SortMain {public static void main(String[] args) throws Exception {Configuration conf = new Configuration();Job job = new Job(conf);job.setJarByClass(SortMain.class);job.setMapperClass(SortMap.class);job.setMapOutputKeyClass(IntWritable.class);job.setMapOutputValueClass(Text.class);job.setReducerClass(SortRedu.class);job.setOutputKeyClass(IntWritable.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));job.waitForCompletion(true);}}
1 0
- MapReduce处理数据去重与数据排序
- Hadoop mapreduce 数据去重 数据排序小例子
- hadoop mapreduce数据去重
- MapReduce 之 数据去重
- MapReduce实例----数据去重
- 【MapReduce实例】数据去重
- MapReduce基础开发之二数据去重和排序
- MapReduce数据去重程序实验
- MapReduce编程之数据去重
- MapReduce编程实例之数据去重
- Hadoop MapReduce数据去重程序
- Hadoop—MapReduce练习(数据去重、数据排序、平均成绩、倒排索引)
- Hadoop—MapReduce练习(数据去重、数据排序、平均成绩、倒排索引)
- ZFS与数据去重
- 详解MapReduce实现数据去重与倒排索引应用场景案例
- 整数数据唯一(去重)排序
- 大数据排序 去重相关问题
- 超大数据去重的处理办法
- 通达OA-今日学习:Office_Anywhere服务已经启动了,但仍打不开页面或很慢,怎么办?
- Mac下myeclipse 2014 安装checkstyle
- Android之ListView包含多种类型的Item
- android stdio 常用的快捷键
- asp.net mvc ef 查询 报错
- MapReduce处理数据去重与数据排序
- java 中的HashMap简单介绍
- MySQL使用CREATE OR REPLACE VIEW语句修改视图
- Unity3D实现再鼠标单击的方向发射子弹
- 搜狗手机浏览器测试管理方法(二)-----项目测试流程
- web前端小杂烩-块级元素/css权重/浏览器内核
- 3.6 Git 分支 - 分支的衍合
- ExpressJS介绍
- Winform不同窗口的Button响应同一个点击事件