千家信息网

SimpleKMeansClustering运行报错怎么解决

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍" SimpleKMeansClustering运行报错怎么解决"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇" SimpleKMeansClu
千家信息网最后更新 2026年10月31日SimpleKMeansClustering运行报错怎么解决

这篇文章主要介绍" SimpleKMeansClustering运行报错怎么解决"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇" SimpleKMeansClustering运行报错怎么解决"文章能帮助大家解决问题。

环境列表

软件明称版本

hadoop

0.20.2

mahout

0.4

eclipse

Kepler Service Release 1


报错代码:

ClassNotFoundException: org.apache.mahout.math.function.IntDoubleProcedure

解决办法:

开始的主观认为IntDoubleProcedure在mahout-math-0.4.jar包里,可是经测试确实没有在这个包里面.

后来发现IntDoubleProcedure在mahout-collections-1.0.jar里面,增加mahout-collections-1.0.jar这个包,就不会报出上面的错误了.

文件内容:

package com.mahout.cluster;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.SequenceFile;import org.apache.hadoop.io.Text;import org.apache.mahout.clustering.WeightedVectorWritable;import org.apache.mahout.clustering.kmeans.Cluster;import org.apache.mahout.clustering.kmeans.KMeansDriver;import org.apache.mahout.common.distance.EuclideanDistanceMeasure;import org.apache.mahout.math.RandomAccessSparseVector;import org.apache.mahout.math.Vector;import org.apache.mahout.math.VectorWritable;public class SimpleKMeansClustering {  public static final double[][] points = { {1, 1}, {2, 1}, {1, 2},                                           {2, 2}, {3, 3}, {8, 8},                                           {9, 8}, {8, 9}, {9, 9}};    public static void writePointsToFile(List points,                                       String fileName,                                       FileSystem fs,                                       Configuration conf) throws IOException {    Path path = new Path(fileName);    SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf,        path, LongWritable.class, VectorWritable.class);    long recNum = 0;    VectorWritable vec = new VectorWritable();    for (Vector point : points) {      vec.set(point);      writer.append(new LongWritable(recNum++), vec);    }    writer.close();  }    public static List getPoints(double[][] raw) {    List points = new ArrayList();    for (int i = 0; i < raw.length; i++) {      double[] fr = raw[i];      Vector vec = new RandomAccessSparseVector(fr.length);      vec.assign(fr);      points.add(vec);    }    return points;  }    public static void main(String args[]) throws Exception {        int k = 3;        List vectors = getPoints(points);        File testData = new File("testdata");    if (!testData.exists()) {      testData.mkdir();    }    testData = new File("testdata/points");    if (!testData.exists()) {      testData.mkdir();    }        Configuration conf = new Configuration();    FileSystem fs = FileSystem.get(conf);    writePointsToFile(vectors, "testdata/points/file1", fs, conf);        Path path = new Path("testdata/clusters/part-00000");    SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf,        path, Text.class, Cluster.class);        for (int i = 0; i < k; i++) {      Vector vec = vectors.get(i);      Cluster cluster = new Cluster(vec, i, new EuclideanDistanceMeasure());      writer.append(new Text(cluster.getIdentifier()), cluster);    }    writer.close();        KMeansDriver.run(conf, new Path("testdata/points"), new Path("testdata/clusters"),      new Path("output"), new EuclideanDistanceMeasure(), 0.001, 10,      true, false);        SequenceFile.Reader reader = new SequenceFile.Reader(fs,        new Path("output/" + Cluster.CLUSTERED_POINTS_DIR                 + "/part-m-00000"), conf);        IntWritable key = new IntWritable();    WeightedVectorWritable value = new WeightedVectorWritable();    while (reader.next(key, value)) {      System.out.println(value.toString() + " belongs to cluster "                         + key.toString());    }    reader.close();  }  }

关于" SimpleKMeansClustering运行报错怎么解决"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

运行 知识 内容 行业 不同 实用 主观 代码 办法 实用性 实际 文件 文章 方法 更多 案例 版本 环境 知识点 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技金融是不是互联网金融 圆梦互联网科技 期待互联网科技 米客互联网科技 碳银互联网科技有限公司 互联网 视角下的科技创新 互联网金融 科技创新 互联网汽车科技小镇 互联网科技产品 宁波青枫互联网科技有限公司 互联网科技与大数据专业 玉溪新华互联网科技好不好 四川慕妮娅互联网科技有限公司 电子商务与互联网科技的关系 宁波跨境商互联网科技有限公司 江苏互联网智能科技产品出厂价 陕西九四连强互联网科技有限公司 西安左小互联网科技有限公司 科技信息时代互联网发展 陕西彩京云互联网科技有限公司 云之行互联网科技 金融科技与互联网金融 易互联网科技有限公司 奔汉互联网科技 互联网经济与金融科技 受益于互联网科技的高速发展 注册互联网科技公司经营范围大全 美国互联网科技实力 长沙渺峰互联网科技有限公司 上海旺乐尼互联网科技有限公司
0