Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Spark 2.0-如何获取与群集中心关联的群集ID_Scala_Apache Spark_K Means - Fatal编程技术网

Scala Spark 2.0-如何获取与群集中心关联的群集ID

Scala Spark 2.0-如何获取与群集中心关联的群集ID,scala,apache-spark,k-means,Scala,Apache Spark,K Means,我想知道与群集中心关联的ID是什么model.transform(dataset)将为我的数据点分配预测的群集ID,model.clusterCenters.foreach(println)将打印这些群集中心,但我无法确定如何将群集中心与其ID关联 import org.apache.spark.ml.clustering.KMeans // Loads data. val dataset = spark.read.format("libsvm").load("data/mllib/sampl

我想知道与群集中心关联的ID是什么
model.transform(dataset)
将为我的数据点分配预测的群集ID,
model.clusterCenters.foreach(println)
将打印这些群集中心,但我无法确定如何将群集中心与其ID关联

import org.apache.spark.ml.clustering.KMeans

// Loads data.
val dataset = spark.read.format("libsvm").load("data/mllib/sample_kmeans_data.txt")

// Trains a k-means model.
val kmeans = new KMeans().setK(2).setSeed(1L)
val model = kmeans.fit(dataset)
val prediction = model.transform(dataset)

// Shows the result.
println("Cluster Centers: ")
model.clusterCenters.foreach(println)
理想情况下,我希望输出如下:

|I.D     |cluster center |
==========================
|0       |[0.0,...,0.3]  |
|2       |[1.0,...,1.3]  |
|1       |[2.0,...,1.3]  |
|3       |[3.0,...,1.3]  |

在我看来,println顺序似乎不是按ID排序的。我尝试将
model.clusterCenters
转换为DF to
transform()
,但我不知道如何将
Array[org.apache.spark.ml.linalg.Vector]
转换为
org.apache.spark.sql.Dataset[\ux]

保存数据后,它将写入群集id和群集中心。您可以读取文件,可以看到所需的输出

    model.save(sc, "/user/hadoop/kmeanModel")
    val parq = sqlContext.read.parquet("/user/hadoop/kmeanModel/data/*")
    parq.collect.foreach(println)

@BéatriceMoissinac,我们面对这个问题,研究了源代码并找到了它。