您好,欢迎访问一九零五行业门户网

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 values, context context)  
                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
其它类似信息

推荐信息