Estoy aprendiendo Mahout y leyendo "Mahout en acción".Obtener una IOException al ejecutar un código de muestra en "Mahout en acción" en mahout-0.6
Cuando intenté ejecutar el código de ejemplo en Capítulo7 SimpleKMeansClustering.java, una excepción apareció:
Excepción en el hilo "principal" java.io.IOException: malo clase de valor: 0,0: nulo no es org clase .apache.mahout.clustering.WeightedPropertyVectorWritable en org.apache.hadoop.io.SequenceFile $ Reader.next (SequenceFile.java:1874) en SimpleKMeansClustering.main (SimpleKMeansClustering.java:95)
I successed este código en mahout -0.5, pero en mahout-0.6 vi esta excepción. Incluso cambié el nombre del directorio de clusters-0 a clusters-0-final, todavía estoy frente a esta excepción.
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();
¿Alguien tiene alguna idea sobre esta excepción? He estado tratando de resolverlo durante mucho tiempo y no tengo ni idea. Y hay pocas fuentes en internet.
Gracias de antemano
Por lo general significa que su entrada está vacía o malformado. También tenga en cuenta que el libro va con Mahout 0.5, sin embargo, en general, no esperaría problemas al usar los ejemplos con 0.6. Sin embargo, no puedo decirlo con seguridad. –
Gracias Sean Owen. Voy a ir con Mahout 0.5 entonces. :) – Nebulach