mapreduce计算均值combine加速
来源:互联网 发布:ubuntu下svn服务器搭建 编辑:程序博客网 时间:2024/05/16 11:10
import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.DoubleWritable; 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; import org.apache.hadoop.io.Text; public class Score { static class ScoreMapper extends Mapper<Object, Text, Text, Text> {//class public void map(Object key,Text value,Context context) throws IOException,InterruptedException{ StringTokenizer itr=new StringTokenizer(value.toString()); String s; while(itr.hasMoreTokens()) { System.out.println("Map "+(s=itr.nextToken())); context.write(new Text(s),new Text(itr.nextToken()+",1")); } } } static class ScoreCombine extends Reducer<Text, Text, Text, Text> { public void reduce(Text key,Iterable<Text>values,Context context) throws IOException,InterruptedException{ int sum=0,cnt=0; for(Text val:values) { String[] s1=val.toString().split(","); sum+=Integer.parseInt(s1[0]); cnt+=Integer.parseInt(s1[1]); } String s; System.out.println("Combine"+(s=new String(sum+","+cnt))); context.write(key,new Text(new String(sum+","+cnt))); } } static class ScoreReducer extends Reducer<Text, Text, Text, DoubleWritable> { public void reduce(Text key,Iterable<Text>values,Context context) throws IOException,InterruptedException{ int sum=0,cnt=0; for(Text val:values) { String[]s=val.toString().split(","); sum+=Integer.parseInt(s[0]); cnt+=Integer.parseInt(s[1]); } String s; System.out.println("reduce"+(s=new String(key+","+(sum*1.0/cnt)))); context.write(key,new DoubleWritable(sum*1.0/cnt)); } } public static void main(String args[])throws Exception { Configuration conf=new Configuration(); if(args.length!=2) { System.out.print("Usage: Score <in> <out>"); System.exit(2); } Job job=new Job(conf,"Score"); job.setJarByClass(Score.class); job.setMapperClass(ScoreMapper.class); job.setCombinerClass(ScoreCombine.class); job.setReducerClass(ScoreReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); FileInputFormat.addInputPath(job,new Path(args[0])); FileOutputFormat.setOutputPath(job,new Path(args[1])); System.exit(job.waitForCompletion(true)?0:1); } }
0 0
- mapreduce计算均值combine加速
- Hadoop--Mapreduce计算每个人成绩的平均数,用combine函数加速
- mapreduce combine
- 计算均值mean的MapReduce程序Computing mean with MapReduce
- MapReduce之combine
- mapreduce的shuffle,partition,combine
- mapreduce的shuffle,partition,combine
- mapreduce的shuffle,partition,combine
- mapreduce的shuffle,partition,combine
- MapReduce编程(四) 求均值
- OpenCV 计算均值方差
- 计算图像均值
- 均值与方差计算
- Spark计算均值
- 计算图像均值
- combine
- MapReduce中的Shuffle和Sort分析 combine分析
- mapreduce里的shuffle 里的 sort merge 和combine
- 带有虚函数的菱形继承和带有虚函数的菱形虚继承
- sysfs: cannot create duplicate filename '/class/spi_master/spi1'
- 微信、qq 抢红包神器 安卓版 基于 AccessibilityService 版本
- Android四大组件之BroadcastReceiver
- light oj 1122
- mapreduce计算均值combine加速
- Git与Github的基础使用之--创建版本库
- 图解Salesforce报表和仪表板配置
- 顺序表的基本操作
- 自定义ProgressBar 带数字 带滑动块
- Caffe学习笔记—— solver参数说明及利用自己的数据集对权值微调
- POJ
- (转)Material Design之CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar
- 基于freemarker ,xdocreport生成word,pdf