Mapreduce《案例之数据去重复》
源数据:
a.txt内容:
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
b.txt内容:
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
输出结果:
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
//===================================JAVA CODE=========================
package gq;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
/**
* 数据去重复
* @author tallqi
*
*/
public class Dereplication {
public static class Map extends Mapper<Object, Text, Text, Text>{
private static Text line = new Text();
public void map(Object key,Text value,Context context) throws IOException, InterruptedException{
line =value;
System.out.println("Map:"+value);
context.write(line, new Text(""));
}
}
public static class Reduce extends Reducer<Text, Text, Text, Text>{
public void reduce(Text key,Iterable<Text> value,Context context) throws IOException, InterruptedException{
System.out.println("Reduce:"+key);
context.write(key, new Text(""));;
}
}
public static void main(String[] args) throws Exception{
Configuration conf = new Configuration();
Job job = new Job(conf,"Dereplication");
job.setJarByClass(Dereplication.class);
//设置Map、Combine和Reduce处理类
job.setMapperClass(Map.class);
// job.setCombinerClass(Reduce.class);
job.setReducerClass(Reduce.class);
//输出Key,value的类型
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
//数据源地址,数据输出地址
FileInputFormat.addInputPath(job, new Path("hdfs://h0:9000/user/tallqi/in/input"));
FileOutputFormat.setOutputPath(job, new Path("hdfs://h0:9000/user/tallqi/in/output"));
System.exit(job.waitForCompletion(true)?0:1);
}
}
相关推荐
MapReduce是一种分布式计算模型,由Google在2004年提出,主要用于处理和生成大规模数据集。它将复杂的并行计算任务分解成两个主要阶段:Map(映射)和Reduce(化简)。在这个"MapReduce项目 数据清洗"中,我们将探讨...
### MapReduce综合应用案例——招聘数据清洗 #### 一、背景 随着互联网技术的迅猛发展,各类在线招聘平台成为连接求职者与企业的桥梁。这些平台不仅提供了海量的招聘信息,也为企业的人才选拔提供了便利。然而,在...
在这个实例中,我们看到的是一个基于MapReduce的数据去重操作,这个操作在大数据处理中非常常见,尤其是当处理的数据源包含重复记录时。下面将详细解释每个部分的作用。 1. **Mapper类**: 在`DedupMapper`类中,...
下面是一个简单的 MapReduce 应用案例,用于招聘数据的清洗: 假设我们有一个包含求职者简历信息的文本文件,其中每行是一个求职者的简历,包括姓名、学历、工作经验等信息。我们希望通过 MapReduce 对这些简历数据...
在这个"007_hadoop中MapReduce应用案例_1_数据去重"的主题中,我们将深入探讨如何利用MapReduce解决数据去重的问题。这个案例可能涉及到对大数据集进行清洗和预处理,以确保数据的准确性和一致性。 首先,我们来看`...
《MapReduce在招聘数据清洗中的综合应用案例》 MapReduce是一种分布式计算模型,由Google公司提出,主要用于处理和生成大规模数据集。在这个案例中,我们将深入探讨如何利用MapReduce技术来清洗招聘数据,以实现更...
内容概要:本文详细介绍了利用MapReduce框架对电信数据进行清洗的具体流程和技术细节。首先概述了数据清洗的目标,包括过滤无效记录、标准化数据格式和删除重复记录。接着逐步讲解了MapReduce的各个阶段:Map阶段...
### MapReduce综合应用案例——招聘数据清洗 #### 案例背景 随着互联网技术的发展,企业获取求职者信息的方式越来越多样化,导致收集到的求职者简历数据量巨大且杂乱无章。一家大型招聘公司在日常运营中积累了大量...
通过分析提供的“mapreduce综合应用案例 - 招聘数据清洗.zip”压缩包,我们可以了解到如何利用MapReduce技术对招聘数据进行高效且准确的预处理。 首先,MapReduce由两个主要阶段组成:Map阶段和Reduce阶段。Map阶段...
在大数据领域,数据采集、清洗和...综上所述,这个案例将涵盖从数据采集到MapReduce处理的全过程,帮助理解大数据分析的核心技术和实践方法。通过学习和实践,你将能够应对各种大数据挑战,为业务决策提供有力支持。
### MapReduce在招聘数据清洗中的综合应用案例 #### 一、案例背景 在当前大数据时代背景下,企业常常需要处理大量的招聘数据,这些数据通常包含了职位信息、公司信息、薪资范围、工作地点等丰富的信息。然而,原始...
本综合应用案例聚焦于MapReduce在招聘数据清洗中的应用。 在大数据领域,数据清洗是至关重要的一步,它包括去除重复值、处理缺失值、纠正格式错误、转换数据类型等多个环节。在招聘数据中,可能存在各种不一致性,...
在本案例中,我们将深入探讨MapReduce如何应用于招聘数据清洗这一实际场景。 一、Map阶段 在Map阶段,原始数据被分片(split)并分配给多个工作节点(worker node)。每个节点上的mapper任务独立处理其分配的数据块...
在本节中,我们将深入探讨MapReduce的扩展案例,特别是倒排索引的构建,这是一个在大数据处理中常见的任务,特别是在搜索引擎技术中。倒排索引允许快速定位文档中特定关键词的位置,从而提高搜索效率。 首先,我们...
通过MapReduce程序设计,可以实现将这些数据中的重复项去除,只保留唯一的数据项。 在设计思路上,数据去重的目标是确保输出文件中每个数据项只出现一次。这一目标可以通过让相同的数据项在MapReduce过程中被发送到...