`

Mapreduce《案例之平均分》

阅读更多

Mapreduce《案例之数据排序》

数据源:

a.txt 内容:

aaa 120

bbb 100

ccc 130

ddd 150

 

b.txt内容:

aaa 121

bbb 101

ccc 131

ddd 150

 

c.txt内容

aaa 119

bbb 99

ccc 129

ddd 150

 

 

输出结果:

aaa120

bbb100

ccc130

ddd150

 

 

 

 

 

 

===========================java code==========================

package gq;

 

import java.io.IOException;

import java.util.Iterator;

import java.util.StringTokenizer;

 

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.Path;

import org.apache.hadoop.io.IntWritable;

import org.apache.hadoop.io.LongWritable;

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.input.TextInputFormat;

import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;

 

/**

 * 

 * Class Description:求平均分测试类

 *

 * Author:gaoqi  

 *

 * Date:2015年6月5日 下午2:03:08  

 *

 */

public class AvgScore {

 

public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {

public void map(LongWritable key,Text value,Context context) throws IOException, InterruptedException{

String line = value.toString().trim();

 

StringTokenizer stk = new StringTokenizer(line,"/n");

while(stk.hasMoreElements()){

StringTokenizer sk = new StringTokenizer(stk.nextToken());

context.write(new Text(sk.nextToken()), new IntWritable(Integer.parseInt(sk.nextToken())));

}

 

}

 

}

 

public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {

public void reduce(Text key,Iterable<IntWritable> values,Context context) throws IOException, InterruptedException{

Iterator<IntWritable> its = values.iterator();

int sum = 0;

int cnt = 0;

while(its.hasNext()){

sum += its.next().get();

cnt++;

}

context.write(key, new IntWritable(sum/cnt));

}

}

 

public static void main(String[] args) throws Exception {

 

Configuration conf = new Configuration();

 

Job job = new Job(conf, "AvgScore");

job.setJarByClass(AvgScore.class);

 

job.setMapperClass(Map.class);

job.setCombinerClass(Reduce.class);

job.setReducerClass(Reduce.class);

 

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(IntWritable.class);

 

job.setInputFormatClass(TextInputFormat.class);

job.setOutputFormatClass(TextOutputFormat.class);

 

FileInputFormat.addInputPath(job, new Path("hdfs://h0:9000/user/tallqi/in/inputAvgScore"));

FileOutputFormat.setOutputPath(job, new Path("hdfs://h0:9000/user/tallqi/in/outputAvgScore"));

System.exit(job.waitForCompletion(true)?0:1);

}

 

}

 

分享到:
评论

相关推荐

    MapReduce求行平均值--MapReduce案例

    本案例主要探讨如何使用MapReduce来求取数据集的行平均值,这在数据分析、数据挖掘以及日志分析等场景中非常常见。我们将讨论四种不同的方法来实现这一目标,针对已处理(包含行号)和未处理的数据集。 首先,我们...

    mapreduce案例代码及案例涉及文件

    总的来说,这个"mapreduce案例代码及案例涉及文件"提供了全面的学习材料,涵盖了MapReduce的基本操作和高级特性。对于初学者来说,这是一个很好的实践平台,能够帮助他们深入理解分布式计算的核心概念,并通过实际...

    MapReduce求行平均值--标准差--迭代器处理--MapReduce案例

    在这个特定的案例中,我们将讨论如何使用MapReduce来计算数据行的平均值和标准差,这是数据分析中的两个重要统计指标。 首先,我们要理解MapReduce的基本工作流程。它主要包含两个主要阶段:Map阶段和Reduce阶段。...

    细细品味Hadoop_Hadoop集群(第9期)_MapReduce初级案例

    这个“细细品味Hadoop_Hadoop集群(第9期)_MapReduce初级案例”主题聚焦于Hadoop集群的核心组件——MapReduce,这是一种分布式计算模型,对于处理海量数据具有重要作用。 MapReduce的工作原理可以分为两个主要阶段...

    mapreduce框架学习之天气统计

    总结来说,这个“mapreduce框架学习之天气统计”案例是一个很好的实践平台,通过它,你可以深入了解MapReduce如何处理大量天气数据,以及如何使用Hadoop的API编写分布式计算程序。实践中遇到的问题和解决方法将...

    mapreduce案例数据

    在这个案例中,我们关注的是与MapReduce相关的数据文件,包括`dept.csv`, `emp.csv`, 和 `sales.csv`。这些CSV(逗号分隔值)文件通常包含结构化的表格数据,非常适合用MapReduce进行分析和处理。 首先,`dept.csv`...

    mapreduce综合应用案例 - 招聘数据清洗.docx

    ### MapReduce综合应用案例——招聘数据清洗 #### 一、背景 随着互联网技术的迅猛发展,各类在线招聘平台成为连接求职者与企业的桥梁。这些平台不仅提供了海量的招聘信息,也为企业的人才选拔提供了便利。然而,在...

    MapReduce 设计模式

    3. MapReduce案例分析:通过“Hadoop Example: WordCount”展示了如何使用MapReduce编程模型来实现一个简单的词频统计程序。这是一个经典的MapReduce入门案例,通过它可以理解MapReduce框架的基本工作原理。 4. Pig...

    学生mapreduce成绩分析

    在成绩分析中,Reduce函数可能会对每个学生的所有成绩求平均值,计算最高分和最低分,或者统计及格和不及格的学生人数。这样,我们可以得到每个学生综合成绩的汇总信息,便于进一步的统计分析。 **大数据处理**: ...

    mapreduce综合应用案例 - 招聘数据清洗.zip

    总的来说,这个MapReduce案例展示了如何利用分布式计算的优势来处理大数据清洗任务,尤其在招聘数据这样复杂且庞大的数据集上,提高效率和准确性。通过对数据的清洗和预处理,可以为后续的分析和决策提供更可靠的...

    基于Java的Hadoop HDFS和MapReduce实践案例设计源码

    内容涵盖HDFS的JAVA API操作,如文件读取、写入、删除、元数据查询和文件列表等,以及MapReduce编程模型的多个应用,包括求平均数、Join操作、TopK算法、二次排序,并涉及自定义InputFormat、OutputFormat和shuflle...

    基于hadoop计算机平均分

    项目实战部分可能包含了一组示例代码或者实验指导,让学习者能够动手实践,通过实际操作来学习和理解MapReduce计算平均分的过程。 5.团队项目可能是指整个项目是由一个团队协作完成的,这意味着有不同的人负责不同...

    mapreduce综合应用案例2.zip

    在本案例中,我们将深入探讨MapReduce如何应用于招聘数据清洗这一实际场景。 一、Map阶段 在Map阶段,原始数据被分片(split)并分配给多个工作节点(worker node)。每个节点上的mapper任务独立处理其分配的数据块...

    分布式文件系统实例-mapreduce-排序

    它首先对每个键的所有值进行规约(reduction),例如,可以将所有值相加或取平均。在这个排序实例中,由于我们只关心排序,reduce任务可能仅需将所有具有相同键的值合并,然后输出该键以及其对应的排序后的值列表。...

    MapReduce高阶实现

    通过学习这些案例,可以更好地理解MapReduce的实际价值和适用场景。 在“MapReduce高阶实现”的课程中,你将有机会深入学习以上知识点,并通过实践项目来提升你的MapReduce编程能力。通过熟练掌握这些高级技巧,你...

    基于 Hadoop 平台,使用 MapReduce 编程,统计NBA球员五项数据.zip

    在这个案例中,我们可能要统计的是球员的五项关键数据,例如得分、篮板、助攻、抢断和盖帽。 首先,我们需要理解 Hadoop 的生态系统。Hadoop 包括 HDFS(Hadoop Distributed File System),这是一个分布式文件系统...

    mapreduce综合应用案例 - 招聘数据清洗

    ### MapReduce综合应用案例——招聘数据清洗 #### 案例背景 随着互联网技术的发展,企业获取求职者信息的方式越来越多样化,导致收集到的求职者简历数据量巨大且杂乱无章。一家大型招聘公司在日常运营中积累了大量...

    Hadoop-2.8.0-Day04-MapReduce编程案例-课件与资料.zip

    在这个"Day04"的学习资料中,我们将深入探讨MapReduce编程模型,并通过具体的案例来理解其工作原理。 MapReduce 分为两个主要阶段:Map阶段和Reduce阶段。在Map阶段,原始数据被分割成多个块,每个块由一个Map任务...

Global site tag (gtag.js) - Google Analytics