9.5.4、Spark Mllib

9.5.4、Spark Mllib,第1张

9.5.4、Spark Mllib

无监督学习K-means聚类

—没有label,不用切分训练集和测试集
—主要就是看一些数据点分布在哪个附近

object Demo06KKK {

  def main(args: Array[String]): Unit = {
    val spark: SparkSession = SparkSession
      .builder()
      .master("local[*]")
      .appName("Demo2Person")
      .getOrCreate()

    import spark.implicits._
    import org.apache.spark.sql.functions._

    
    val kmeansDF: Dataframe = spark.read
      .format("csv")
      .option("sep", ",")
      .schema("x Double,y Double")
      .load("sparkproject/data/kmeans")

    val kmeansdata: Dataframe = kmeansDF.as[(Double, Double)]
      .map {
        case (x: Double, y: Double) => {
          val denseVec: linalg.Vector = Vectors.dense(Array(x, y))
          Tuple1(denseVec)
        }
      }.toDF("features")

    
    val km: KMeans = new KMeans()
      .setK(2)

    
    val model: KMeansModel = km.fit(kmeansData)
    val resDF: Dataframe = model.transform(kmeansData)

    resDF.show(1000,false)
  }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5676745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存