嗨我正在reducer阶段创建一个Hash映射。现在我想在其他函数中使用最终的hashmap。我的问题是我们在reduce类中编写自己的方法(在此代码中是ColocationReducer),在哪里我们称之为该方法。默认情况下调用reducer方法..如果我们编写自己的方法我们怎么调用那个方法。
我们是否在mapreduce程序中编写了另一个类以及mapper,reducer类..我们将作业设置为mapper和reducer类。
job.setMapperClass(ColocationMapper.class);
job.setReducerClass(ColocationReducer.class);
如果我再写一个类,则包含一个方法Display(),它显示我们在reducer类中创建的哈希映射的键值。我们如何调用此方法以及我们在哪里包含调用此Display()的代码。
public static class ColocationReducer extends Reducer <Text, Text, Text, Text>
{
Map<String, List<String>> hash = new HashMap<String, List<String>>();
public void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {
List<String> queries = new ArrayList<String>();
String result=" ";
for (Text val : values) {
queries.add(val.toString());
}
for (String str : queries){
result=result.concat(str);
result=result.concat(" ");
}
hash.put(key.toString(), queries);
context.write(key,new Text(result));
}
}