以下是我在 MapReduce 作业中使用的 Reducer 函数的代码。它应该从附加到每个值的迭代器 + 自定义字符串(“ * ---”)中返回值。但相反,它两次附加自定义字符串。
例如,如果值是 abc 则代替打印
abc***---
正在打印
abc***---***---
为什么会这样?
编码:
public static class Reduce extends MapReduceBase implements Reducer<Text, Text, Text, Text> {
public void reduce(Text key, Iterator<Text> values, OutputCollector<Text, Text> output, Reporter reporter) throws IOException {
while (values.hasNext()) {
Text t=values.next();
String s = "***---";
t.append(s.getBytes(), 0, s.length());
output.collect(key, t);
}
}
}