hadoop mapreduce数据去重
hadoop mapreduce数据去重 假设我们有下面两个文件,需要把重复的数据去除。 file0 [plain] 2012-3-1 a 2012-3-2 b 2012-3-3 c 2012-3-4 d 2012-3-5 a 2012-3-6 b 2012-3-7 c 2012-3-3 c file1 [plain] 2012-3-1 b 2012-3-2 a 2012-3-3 b 2012-3-4 d 2012-3-
hadoop mapreduce数据去重
假设我们有下面两个文件,需要把重复的数据去除。
file0
[plain]
2012-3-1 a
2012-3-2 b
2012-3-3 c
2012-3-4 d
2012-3-5 a
2012-3-6 b
2012-3-7 c
2012-3-3 c
file1
[plain]
2012-3-1 b
2012-3-2 a
2012-3-3 b
2012-3-4 d
2012-3-5 a
2012-3-6 c
2012-3-7 d
2012-3-3 c
我们知道,map处理之后,相同的key的值会被聚合起来,交给一个reduce处理,所以,我们可以把输出的内容作为输出的key,reduce原样输出key就OK,mapreduce的代码如下:
[java]
// map将输入中的value复制到输出数据的key上,并直接输出
public static class Map extends Mapper
private static Text line = new Text();// 每行数据
// 实现map函数
public void map(Object key, Text value, Context context)
throws IOException, InterruptedException {
line = value;
context.write(line, new Text(""));
}
}
// reduce将输入中的key复制到输出数据的key上,并直接输出
public static class Reduce extends Reducer
// 实现reduce函数
public void reduce(Text key, Iterable
throws IOException, InterruptedException {
context.write(key, new Text(""));
}
}
处理后的文件如下:
[plain]
2012-3-1 a
2012-3-1 b
2012-3-2 a
2012-3-2 b
2012-3-3 b
2012-3-3 c
2012-3-4 d
2012-3-5 a
2012-3-6 b
2012-3-6 c
2012-3-7 c
2012-3-7 d
推荐阅读
-
mysql 开发技巧之JOIN 更新和数据查重/去重
-
MySQL数据表合并去重的简单实现方法
-
SQL_去重,插入不同数据
-
大数据-Hadoop生态(15)-MapReduce框架原理-自定义FileInputFormat
-
Hadoop 中文编码相关问题 -- mapreduce程序处理GBK编码数据并输出GBK编码数据
-
2020.7.24 一个130行代码的清洗数据的小工具,多种表分类聚合去重补全-zkjs_wang
-
MySQL数据表合并去重的简单实现方法
-
js 对 只包含简单类型数据的对象 为元素 组成的数组 进行去重
-
大数据List去重
-
大数据-Hadoop生态(18)-MapReduce框架原理-WritableComparable排序和GroupingComparator分组