SimpleKMeansClustering运行报错怎么解决
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍" SimpleKMeansClustering运行报错怎么解决"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇" SimpleKMeansClu
千家信息网最后更新 2025年01月23日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(Listpoints, 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安全错误
数据库的锁怎样保障安全
关系库数据库
大一计算机网络技术试题
软件开发17k高吗
软件开发和销售那个
一台电脑做服务器
高级网络安全风格
软件开发计划sdp
北京企业软件开发服务价格
公安局网络安全技术招聘
电信机房服务器租用价格
计算机网络技术初稿
重新搞个数据库执行脚本试
个人鸿蒙软件开发有前景吗
东南大学网络安全联盟
网络安全说的HW是啥
服务器三级安全
yml中的数据库密码加解密
bbs论坛服务器迁移
波士顿大学软件开发专业
88服务器
mysql数据库企业版正版
关于网络安全的句子有哪些
小说大数据库
腾讯云服务器数据更新
数据库如何进行数据加密
怀旧服狮心服务器排队
网络安全行为审计系统视频
网络安全的动态背景
黄浦区营销网络技术服务以客为尊
linux软件开发 用啥