public class MapSideJoin {
public static class MapSideJoinMapper extends Mapper<LongWritable, Text, Text, NullWritable>{
private HashMap<String,String> userMap = new HashMap<>();
protected void setup(Mapper<LongWritable, Text, Text, NullWritable>.Context context)
throws IOException, InterruptedException {
FileReader fr = new FileReader("user.txt");
BufferedReader br = new BufferedReader(fr);
String line = "";
while(StringUtils.isNotBlank(line=br.readLine())){
String[] split = line.split(",");
userMap.put(split[0], split[1]+"\t"+split[2]+"\t"+split[3]);
}
}
protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, NullWritable>.Context context)
throws IOException, InterruptedException {
String line = value.toString();
String[] split = line.split(",");
String userInfo = userMap.get(split[1]);
context.write(new Text(line+"\t"+userInfo), NullWritable.get());
}
}