加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
KmeansSpark.scala 1.52 KB
一键复制 编辑 原始数据 按行查看 历史
import org.apache.spark.mllib.clustering.{KMeans, KMeansModel}
import org.apache.spark.mllib.linalg
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.rdd.RDD
import scala.io.Source
object KmeansSpark {
def main(args: Array[String]): Unit = {
//在本地启动Spark
val sparkConf = new SparkConf().setAppName("KmeansSpark").setMaster("local")
val sc = new SparkContext(sparkConf)
//加载本地文件数据形成RDD
val data = sc.textFile("file:///usr/share/synthetic_control.data")
val parsedData: RDD[linalg.Vector] = data.map(sc=>{
val values: Array[Double] = sc.split("\\s+").map(x => x.toDouble)
Vectors.dense(values)
})
//聚类中心个数
val numClusters = 8
//算法迭代次数
val numIterations = 10
//算法运行次数
val runs = 5
//KMeans训练
val KMTresult:KMeansModel = KMeans.train(parsedData, numClusters, numIterations, runs)
println("Cluster Number:" + KMTresult.clusterCenters.length)
//打印聚类中心ID
var clusterIndex: Int = 0
println("Cluster Centers Information Overview:")
KMTresult.clusterCenters.foreach(
x=>{
println("Center Point of Cluster " + clusterIndex + ":")
println(x)
clusterIndex += 1
})
//打印数据归属哪个聚类中心ID
parsedData.map(v => v.toString + " belong to cluster: " +KMTresult.predict(v))
sc.foreach(x=>
println(x)
)
sc.stop()
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化