MR-找朋友
来源:互联网 发布:中国历史多少年知乎 编辑:程序博客网 时间:2024/05/16 05:44
A B C D E F
B A C D E
C A B E
D A B E
E A B C D
F A
每一行第一个代表本人,后面的是他的朋友,找出有共同朋友的人以及是谁。
下面是我的源代码,仅供参考。
package findfriends;import java.io.IOException;import java.util.Set;import java.util.TreeSet;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;public class FindFriends { public static class FindMap extends Mapper<Object,Text,Text,Text>{ public void map(Object key,Text value,Context context)throws IOException , InterruptedException{ Set<String> set = new TreeSet<String>(); String[] str = new String[value.toString().split(" ").length]; str=value.toString().split(" "); for(int i=0;i<str.length;i++){ set.add(str[i]); } String[] friends = new String[set.size()]; friends = set.toArray(friends); for(int i=0;i<friends.length;i++) for(int j=i+1;j<friends.length;j++){ String friend = friends[i]+friends[j]; context.write(new Text(friend), new Text(str[0])); } } } public static class FindReduce extends Reducer<Text,Text,Text,Text>{ public void reduce(Text key,Iterable<Text> values,Context context)throws IOException,InterruptedException{ String value = ""; for(Text val:values){ if(value==""){ value=val.toString(); } else{ value=value+":"+val.toString(); } } context.write(key, new Text(value)); } } public static void main(String[] args)throws IOException, ClassNotFoundException, InterruptedException{ Configuration conf = new Configuration(); Job job = new Job(conf,"findfriends"); job.setJarByClass(FindFriends.class); job.setMapperClass(FindMap.class); job.setReducerClass(FindReduce.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); job.setNumReduceTasks(1); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); System.exit(job.waitForCompletion(true)?0:1); }}
0 0
- MR-找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- 找朋友
- java中import机制(指定import和import *的区别)
- 我来说说2015年8月25日锤子科技夏季手机发布会的内情
- HTML5做的音频播放器,可以动态的更换音频文件的内容
- iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建
- C#中图片与BASE64码互相转换
- MR-找朋友
- POJ 2034 Anti-prime Sequences(数论+dfs)
- java死锁例子详解
- Linux 新手非常有用的 20 个命令
- iOS开发-我的iOS工程结构
- 关于桶排序算法的STL实现
- 图的遍历
- gcc 4.7 + 不能使用boost_thread的解决办法
- SpringMVC定时任务 执行两次