任何人都可以帮我找到以下代码中的错误。我需要在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));
}
答案 0 :(得分:0)
Hadoop MapReduces传递 key - 值列表 为你拥有的每一把钥匙。
如果要打印所有键的所有值。 在你的映射器中尝试使用一个键,如
output.collect("hadoop", value);
以上将把所有值都放到一个迭代器中。