这是关于Spark和Scala的问题 我想创建一个用户项评级矩阵,并将此矩阵的每一行放入ml KMeans算法中。 所以我写了如下:
val rawData = sc.textFile("/user/ubuntu/SunLu/ml-100k/u.data").map(_.split("\t").take(3))
import org.apache.spark.mllib.linalg.distributed.{MatrixEntry, CoordinateMatrix}
val data = rawData.map{ case Array(i, j, value) => MatrixEntry(i.toLong, j.toLong, value.toDouble)}
val df = new CoordinateMatrix(data).toIndexedRowMatrix().row.toDF("user", "features")
最后,我得到了如下数据框: df.show
然后我使用以下代码获得了userVectors:val userVectors = df.select("features")
我将它应用到ml Kmeans algortihm中,但我收到如下错误:error
我不知道如何将mllib vector
转换为ml vector
。
以及如何将ml KMeans
算法与我所拥有的userVectors
一起应用。