mapred找共同朋友,数据格式如下
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
第一字母表示本人,其他是他的朋友,找出有共同朋友的人,和共同朋友是谁
运行结果
AB E:C:D
AC E:B
AD B:E
AE C:B:D
BC A:E
BD A:E
BE C:D:A
BF A
CD E:A:B
CE A:B
CF A
DE B:A
DF A
EF A
思路:对于每一行,两两进行组合作为一个新key,把每一行的第一个人作为value,map输出。
reduce函数进行聚合合并相同的key(即在map阶段的两两组合的新key),具有相同key的 "每行第一个人列表" 就是key的共同朋友。
代码:
package 优酷面试题;import java.io.IOException;
import java.util.Set;
import java.util.StringTokenizer;
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;
import org.apache.hadoop.util.GenericOptionsParser;public class FindFriend {public static class ChangeMapper extends Mapper
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!