私はreduceをマッピングし、reduce関数を書いて値を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 回繰り返されます。つまり、すべての my は一意である必要があります。
私の最終的な出力は次のようになります。
<2,1>
<3,1>
<4,1>
<3,2>
<4,2>
<1,2>
<4,3>
提案してください。