2016-04-22 49 views
0

誰でも次のコードでエラーを見つけるのを助けることができます。 arraylistに値を格納し、それを次の処理に使用する必要がありますが、このコードは1つの値を読み取り、arraylistに格納してから、arraylistのループで2番目の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)); 
    } 

答えて

0

HadoopのMapReducesは キーを渡します。

すべてのキーのすべての値を印刷する場合。あなたに は、上記

output.collect("hadoop", value); 

のようないくつかのものが1つのイテレータにすべての値を取得する一つのキーを持ってしてみてくださいマッパー。

関連する問題