package mia.clustering.ch12.lastfm;
import java.io.IOException;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.mahout.math.NamedVector;
import org.apache.mahout.math.Vector;
import org.apache.mahout.math.VectorWritable;
public class VectorReducer extends
Reducer<Text,VectorWritable,Text,VectorWritable> {
private VectorWritable writer = new VectorWritable();
@Override
protected void reduce(Text tag,
Iterable<VectorWritable> values,
Context context) throws IOException,
InterruptedException {
Vector vector = null;
for (VectorWritable partialVector : values) {
if (vector == null) {
vector = partialVector.get().like();
}
partialVector.get().addTo(vector);
}
NamedVector namedVector = new NamedVector(vector, tag.toString());
writer.set(namedVector);
context.write(tag, writer);
}
}