千家信息网

spark mllib如何实现快速迭代聚类

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,小编给大家分享一下spark mllib如何实现快速迭代聚类,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!运行代码如下package spark.clusteringimport o
千家信息网最后更新 2025年02月04日spark mllib如何实现快速迭代聚类

小编给大家分享一下spark mllib如何实现快速迭代聚类,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

运行代码如下

package spark.clusteringimport org.apache.spark.mllib.clustering.{PowerIterationClustering}import org.apache.spark.{SparkConf, SparkContext}/**  * 快速迭代聚类  * 基本原理:使用含有权重的无向线将样本数据连接在一张无向图中,之后按照相似度划分,  * 使得划分后的子图内部具有最大的相似度二不同的子图具有最小的相似度从而达到聚类的效果.  * 数据源要求  RDD[(Long), (Long), (Double)]  * 第一个参数和第二个参数是第一个点和第二个点的编号,即其之间 ID,第三个参数是相似度计算值.  * Created by eric on 16-7-21.  */object PIC {  val conf = new SparkConf()                                     //创建环境变量    .setMaster("local")                                             //设置本地化处理    .setAppName("pic")                              //设定名称  val sc = new SparkContext(conf)  def main(args: Array[String]) {    val data = sc.textFile("./src/main/spark/clustering/pic.txt")    val similarities = data.map { line =>      val parts = line.split(" ")      (parts(0).toLong, parts(1).toLong, parts(2).toDouble)    }    val pic = new PowerIterationClustering()      .setK(2) //设置聚类数      .setMaxIterations(10) //设置迭代次数    val model = pic.run(similarities)    model.assignments.foreach {a =>      println(s"${a.id} -> ${a.cluster}")    }  }}

pic.txt

0 1 1.00 2 1.00 3 1.01 2 1.01 3 1.02 3 1.03 4 0.14 5 1.04 15 1.05 6 1.06 7 1.07 8 1.08 9 1.09 10 1.010 11 1.011 12 1.012 13 1.013 14 1.014 15 1.0

结果如下

看完了这篇文章,相信你对"spark mllib如何实现快速迭代聚类"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

0