0
Я новичок в карте, уменьшая и записывая функцию уменьшения для печати значений в Iterable. Ниже моя печать функция:Печать уникальных или отличных значений
public class Reduce extends Reducer<Text, Text, Text, Text> {
protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {
StringBuilder builder = new StringBuilder();
for (Text value : values) {
builder.append("<");
builder.append(value);
builder.append(",");
builder.append(key);
builder.append(">");
builder.append("\n");
context.write(new Text(builder.substring(0, builder.length())), key);
}
}
}
Выход:
Проблема в том, что значения становятся повторен т.е. < 2,1> повторяется 2 раза ... Мое требование после того, как < 2,1> Я должен сразу получить < 3,1>, а затем < 4,1>. Короче говоря, все мое должно быть уникальным.
Мой окончательный вывод должен быть:
<2,1>
<3,1>
<4,1>
<3,2>
<4,2>
<1,2>
<4,3>
Просьба предложить.
Эй, это сработало ... я настолько тупой ... Я не очищал свой строитель, прежде чем снова использовать его ... Большое вам спасибо :) – user1277070