我们是否在reducer类中编写自己的方法

bnl4lu3b  于 2021-06-04  发布在  Hadoop
关注(0)|答案(0)|浏览(228)

嗨,我正在还原阶段创建一个哈希Map。。现在我想在其他函数中使用最终的hashmap。我的问题是我们是否在reduce类中编写自己的方法(在这段代码中是colocationreducer)以及在哪里调用该方法。默认情况下会调用reducer方法。。如果我们编写自己的方法,我们如何调用该方法。
我们是否在mapreduce程序中编写另一个类以及mapper、reducer类。。我们将作业设置为mapper和reducer类。

job.setMapperClass(ColocationMapper.class);
         job.setReducerClass(ColocationReducer.class);

如果我再写一个包含display()方法的类,它显示我们在reducer类中创建的hash map的键值。如何调用此方法,以及在何处包含调用此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));

            }
    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题