package skywriting.examples.skyhout.kmeans;
import org.apache.hadoop.io.Text;
import org.apache.mahout.clustering.kmeans.Cluster;
import org.apache.mahout.clustering.kmeans.KMeansInfo;
import skywriting.examples.skyhout.common.Combiner;
public class KMeansCombiner implements Combiner<Text, KMeansInfo, KMeansInfo, KMeansInfo> {
@Override
public KMeansInfo combine(KMeansInfo oldValue, KMeansInfo newValue) {
Cluster cluster = new Cluster();
cluster.addPoints(oldValue.getPoints(), oldValue.getPointTotal());
cluster.addPoints(newValue.getPoints(), newValue.getPointTotal());
return new KMeansInfo(cluster.getNumPoints(), cluster.getPointTotal());
}
@Override
public KMeansInfo combineInit(KMeansInfo initVal) {
return new KMeansInfo(initVal.getPoints(), initVal.getPointTotal());
}
public KMeansInfo combineFinal(Text key, KMeansInfo oldVal) {
return oldVal;
}
}