在reducer中存储和打印值

时间:2016-04-22 20:18:34

标签: hadoop mapreduce

任何人都可以帮我找到以下代码中的错误。我需要在arraylist中存储值,然后使用它进行进一步处理,但是这段代码读取一个值,打印并存储在arraylist中,然后根据我在arraylist循环中的第二个print语句再次打印它。 但我想将所有元素存储在arraylist中然后想要打印它。 请帮忙!! 感谢

    public class tempreducer extends Reducer<LongWritable,Text,IntWritable,Text> {

  public void reduce(LongWritable key, Iterable<Text> values,
        Context context) throws IOException, InterruptedException {
    System.out.println("reducer");
    ArrayList<String> vArrayList = new ArrayList<String>();
    for(Text v: values)
    {

        String line=v.toString();
        System.out.println(line);
        vArrayList.add(line);
    }
    for(int i = 0; i < vArrayList.size(); ++i)
     {
         System.out.println("value"+vArrayList.get(i));
     }

1 个答案:

答案 0 :(得分:0)

Hadoop MapReduces传递 key - 值列表 为你拥有的每一把钥匙。

如果要打印所有键的所有值。 在你的映射器中尝试使用一个键,如

output.collect("hadoop", value);

以上将把所有值都放到一个迭代器中。