千家信息网

Hadoop如何实现求平均成绩

发表于:2024-10-27 作者:千家信息网编辑
千家信息网最后更新 2024年10月27日,这篇文章主要介绍Hadoop如何实现求平均成绩,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! //思路根据hadoop原理归并相同人名,以人名为key,以各科成绩为value容
千家信息网最后更新 2024年10月27日Hadoop如何实现求平均成绩

这篇文章主要介绍Hadoop如何实现求平均成绩,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

 //思路根据hadoop原理归并相同人名,以人名为key,以各科成绩为value容器元素,计算容器值的和,除以科目数。public class AverageScore {public static class TokenizerMapper extends Mapper{  private Text word = new Text();    public void map(Object key, Text value, Context context) throws IOException, InterruptedException {   //按照行分割  StringTokenizer line = new StringTokenizer(value.toString(),"\n");      while (line.hasMoreElements()) {      //按照空格分割      StringTokenizer lineBlock = new StringTokenizer(line.nextToken());   String stuName = lineBlock.nextToken();   int stuScore = Integer.parseInt(lineBlock.nextToken());           word.set(stuName);         context.write(word, new IntWritable(stuScore));   } }}
public static class IntSumReducer extends Reducer { private IntWritable result = new IntWritable();
 public void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException {   int sum = 0;   int count =0;   while(values.iterator().hasNext()){    sum+=values.iterator().next().get();    count++;   }   int average = sum/count;   result.set(average);   context.write(key, result); }}
public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); if (otherArgs.length != 2) {   System.err.println("Usage: wordcount  ");   System.exit(2); } Job job = new Job(conf, "word count"); job.setJarByClass(AverageScore.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(otherArgs[0])); FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); System.exit(job.waitForCompletion(true) ? 0 : 1);}}

以上是"Hadoop如何实现求平均成绩"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0