Я изучаю Mahout и читаю «Mahout в действии».
Когда я попытался запустить образец кода в главе 7 SimpleKMeansClustering.java, выскочило исключение:
Исключение в потоке "main" java.io.IOException: неправильное значение class: 0.0: null не является классом org.apache .mahout.clustering.WeightedPropertyVectorWritable в org.apache.hadoop.io.SequenceFile $ Reader.next (SequenceFile.java:1874) в SimpleKMeansClustering.main (SimpleKMeansClustering.java:95)
Я успешно выполнил этот код на mahout-0.5 но на mahout-0.6 я видел это исключение. Даже если я изменил имя каталога с кластеров-0 на кластеры-0-финал, я все еще сталкиваюсь с этим исключением.
KMeansDriver.run(conf, vectors, new Path(canopyCentroids, "clusters-0-final"), clusterOutput, new TanimotoDistanceMeasure(), 0.01, 20, true, false);//First, I changed this path.
SequenceFile.Reader reader = new SequenceFile.Reader(fs, new Path("output/clusters/clusteredPoints/part-m-00000"), conf);//I double checked this folder and filename.
IntWritable key = new IntWritable();
WeightedVectorWritable value = new WeightedVectorWritable();
int i=0;
while(reader.next(key, value)) {
System.out.println(value.toString() + " belongs to cluster " + key.toString());
i++;
}
System.out.println(i);
reader.close();
Кто-нибудь знает об этом исключении? Я давно пытаюсь ее решить и понятия не имею. А источников в интернете немного.
Заранее благодарим