MapReduce数据分析(9)数据去重

九、MapReduce第九讲数据去重()

实现原理分析:

map函数数将输入的文本按照行读取, 并将Key–每一行的内容 输出 value–空。

reduce 会自动统计所有的key,我们让reduce输出key->输入的key value->空,这样就利用reduce自动合并相同的key的原理实现了数据去重。

数据介绍:链家网公司需要对数据进行,找了一些数据分析师需要对数据进行处理,其中有些有重复数据,我们需要自己进行去重的操作,然后才能把数据安心的给数据分析师进行分析。

数据样例:

2室1厅,53m²,共5层,207研究所宿舍,小店,学府街,体育西路体育南路351号,86,16120元/m²

代码如下:

package HouseQC;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
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;

public class QC {
	public static void main(String[] args) throws Exception {
		
		Configuration conf=new Configuration();
		Job job = Job.getInstance(conf);
		job.setJarByClass(QC.class);
		job.setMapperClass(MMapper.class);
		job.setReducerClass(MReduce.class);
		job.setMapOutputKeyClass(Text.class);
		job.setMapOutputValueClass(NullWritable.class);
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(NullWritable.class);
		FileInputFormat.setInputPaths(job, new Path(args[0]));
		FileOutputFormat.setOutputPath(job, new Path(args[1]));
		job.waitForCompletion(true);
		
	}
	public static class MMapper extends Mapper<LongWritable, Text, Text, NullWritable>{
		
		protected void map(LongWritable key, Text value, Context context)
				throws IOException, InterruptedException {
			context.write(value, NullWritable.get());
		}
	}
	public static class MReduce extends Reducer<Text, NullWritable, Text, NullWritable>{
		@Override
		protected void reduce(Text key, Iterable<NullWritable> value,
				Context context) throws IOException, InterruptedException {
			context.write(key, NullWritable.get());
		}
	}
}

运行结果:

在这里插入图片描述

本次教程到此结束!!!
多多支持博主呦,你们的支持就是我更新的动力。

最后附上部分数据:

2室1厅,53m²,共5层,207研究所宿舍,小店,学府街,体育西路体育南路351号,86,16120元/m²
2室2厅,75m²,中层(共6层),龙腾小区,万柏林,迎泽西大街,迎泽西大街,86,11467元/m²
3室2厅,141m²,中层(共22层),远大凤玺湾,万柏林,晋祠路,长风西街36号,212,14961元/m²
2室2厅,78m²,中层(共6层),晋安三号院,杏花岭,胜利街,胜利街29号,80,10256元/m²
3室1厅,98m²,高层(共23层),御龙庭(龙城北街),小店,晋阳街,龙城北街165号,130,13150元/m²
2室2厅,88m²,中层(共26层),奥龙湾,杏花岭,建设北路,建设北路339号,113,12773元/m²
2室2厅,100m²,高层(共11层),大唐四季花园,万柏林,千峰南路,千峰南路168号,125,12500元/m²
3室2厅,189m²,中层(共27层),恒大华府,小店,体育路,晋阳街86号,350,18517元/m²
2室1厅,60m²,低层(共6层),胜利街玻璃厂宿舍,杏花岭,上北关,胜利街,56,9333元/m²
1室1厅,39m²,中层(共6层),煤场小区,杏花岭,建设北路,建设北路186号,42.5,10897元/m²
2室2厅,62m²,高层(共6层),铁路迎春小区,杏花岭,赛马场,迎春街18号,59,9466元/m²
3室2厅,105m²,中层(共6层),晋安三号院,杏花岭,胜利街,胜利街29号,100,9524元/m²
3室2厅,95m²,低层(共13层),富力城七期启栖谷,杏花岭,北中环,北中环街,102,10719元/m²
2室1厅,73m²,高层(共6层),煤气化大王小区,万柏林,千峰南路,千峰南路69号,80,10959元/m²
1室1厅,39m²,低层(共32层),富力现代广场,万柏林,长风西大街,和平南路221号,59,14914元/m²
2室1厅,64m²,中层(共6层),邮电宿舍,迎泽,青年路,邮电后街,125,19531元/m²
3室2厅,181m²,高层(共30层),香檀一号,小店,滨河东路,星河街1号,320,17641元/m²
2室2厅,80m²,低层(共7层),省建四公司宿舍,迎泽,体育馆,体育西路,90,11250元/m²
2室2厅,94m²,高层(共6层),太原陶瓷厂宿舍,杏花岭,赛马场,敦化南路27号,95,10106元/m²
3室2厅,123m²,低层(共7层),华宇绿洲,小店,学府街,学府西街130号,175,14127元/m²
3室1厅,73m²,共5层,老军营南区,迎泽,老军营,菜园西街10号,100,13699元/m²
2室1厅,50m²,低层(共9层),梅花苑,杏花岭,北大街,北大街,53,10600元/m²
2室1厅,55m²,共5层,东苑小区,杏花岭,小东门,小东门街8号,54,9818元/m²
2室2厅,91m²,高层(共33层),太原万科蓝山南区,万柏林,和平南路,和平南路205号,120,13146元/m²
4室2厅,231m²,高层(共7层),华宇绿洲,小店,学府街,学府西街130号,330,14228元/m²
2室1厅,106m²,低层(共14层),十二院城,万柏林,和平南路,和平南路139号,138,13019元/m²
2室1厅,98m²,中层(共32层),绿地世纪城,晋源,晋阳湖,新晋祠路300号,138,14082元/m²
2室1厅,67m²,中层(共6层),铁路迎春小区,杏花岭,赛马场,迎春街18号,70,10448元/m²
3室2厅,117m²,高层(共32层),富力华庭,杏花岭,解放北路,解放北路9号,140,11889元/m²
2室2厅,78m²,中层(共6层),上敦化坊小区,杏花岭,赛马场,敦化化工路,81,10385元/m²
2室1厅,60m²,中层(共6层),邮电宿舍,迎泽,青年路,邮电后街,100,16667元/m²
2室2厅,76m²,高层(共28层),宝佳丽景花园,迎泽,五一广场,并州北路45号,170,22101元/m²
3室2厅,158m²,中层(共33层),昌盛双喜城,小店,亲贤,亲贤北街9号,220
2室1厅,53m²,共5层,207研究所宿舍,小店,学府街,体育西路体育南路351号,86,16120元/m²
2室2厅,75m²,中层(共6层),龙腾小区,万柏林,迎泽西大街,迎泽西大街,86,11467元/m²
3室2厅,141m²,中层(共22层),远大凤玺湾,万柏林,晋祠路,长风西街36号,212,14961元/m²
2室2厅,78m²,中层(共6层),晋安三号院,杏花岭,胜利街,胜利街29号,80,10256元/m²
3室1厅,98m²,高层(共23层),御龙庭(龙城北街),小店,晋阳街,龙城北街165号,130,13150元/m²
2室2厅,88m²,中层(共26层),奥龙湾,杏花岭,建设北路,建设北路339号,113,12773元/m²
2室2厅,100m²,高层(共11层),大唐四季花园,万柏林,千峰南路,千峰南路168号,125,12500元/m²
3室2厅,189m²,中层(共27层),恒大华府,小店,体育路,晋阳街86号,350,18517元/m²
2室1厅,60m²,低层(共6层),胜利街玻璃厂宿舍,杏花岭,上北关,胜利街,56,9333元/m²
1室1厅,39m²,中层(共6层),煤场小区,杏花岭,建设北路,建设北路186号,42.5,10897元/m²
2室2厅,62m²,高层(共6层),铁路迎春小区,杏花岭,赛马场,迎春街18号,59,9466元/m²
3室2厅,105m²,中层(共6层),晋安三号院,杏花岭,胜利街,胜利街29号,100,9524元/m²
3室2厅,95m²,低层(共13层),富力城七期启栖谷,杏花岭,北中环,北中环街,102,10719元/m²
2室1厅,73m²,高层(共6层),煤气化大王小区,万柏林,千峰南路,千峰南路69号,80,10959元/m²
1室1厅,39m²,低层(共32层),富力现代广场,万柏林,长风西大街,和平南路221号,59,14914元/m²
2室1厅,64m²,中层(共6层),邮电宿舍,迎泽,青年路,邮电后街,125,19531元/m²
3室2厅,181m²,高层(共30层),香檀一号,小店,滨河东路,星河街1号,320,17641元/m²
2室2厅,80m²,低层(共7层),省建四公司宿舍,迎泽,体育馆,体育西路,90,11250元/m²
2室2厅,94m²,高层(共6层),太原陶瓷厂宿舍,杏花岭,赛马场,敦化南路27号,95,10106元/m²
3室2厅,123m²,低层(共7层),华宇绿洲,小店,学府街,学府西街130号,175,14127元/m²
3室1厅,73m²,共5层,老军营南区,迎泽,老军营,菜园西街10号,100,13699元/m²
2室1厅,50m²,低层(共9层),梅花苑,杏花岭,北大街,北大街,53,10600元/m²
2室1厅,55m²,共5层,东苑小区,杏花岭,小东门,小东门街8号,54,9818元/m²
2室2厅,91m²,高层(共33层),太原万科蓝山南区,万柏林,和平南路,和平南路205号,120,13146元/m²
4室2厅,231m²,高层(共7层),华宇绿洲,小店,学府街,学府西街130号,330,14228元/m²
2室1厅,106m²,低层(共14层),十二院城,万柏林,和平南路,和平南路139号,138,13019元/m²
2室1厅,98m²,中层(共32层),绿地世纪城,晋源,晋阳湖,新晋祠路300号,138,14082元/m²
2室1厅,67m²,中层(共6层),铁路迎春小区,杏花岭,赛马场,迎春街18号,70,10448元/m²
3室2厅,117m²,高层(共32层),富力华庭,杏花岭,解放北路,解放北路9号,140,11889元/m²
2室2厅,78m²,中层(共6层),上敦化坊小区,杏花岭,赛马场,敦化化工路,81,10385元/m²
2室1厅,60m²,中层(共6层),邮电宿舍,迎泽,青年路,邮电后街,100,16667元/m²
2室2厅,76m²,高层(共28层),宝佳丽景花园,迎泽,五一广场,并州北路45号,170,22101元/m²
3室2厅,158m²,中层(共33层),昌盛双喜城,小店,亲贤,亲贤北街9号,220
发布了11 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44258756/article/details/103065299