我正在尝试在一个浮点数的数据框上运行Spark(1.3.1)Mllib k-means聚类。
我正在遵循Spark提供的聚类示例。
https://spark.apache.org/docs/1.3.1/mllib-clustering.html
然而,我使用的不是文本文件,而是由一个双精度列组成的数据框(为了简单起见)。根据Mllib文档,我需要将其转换为Kmeans函数的向量。到目前为止,我有以下代码:
import org.apache.spark.mllib.linalg.Vectors
val parsedData = data.map(s => Vectors.dense(s(0))).cache()
我收到了错误
error: overloaded method value dense with alternatives:
(values: Array[Double])org.apache.spark.mllib.linalg.Vector and
(firstValue: Double,otherValues: Double*)org.apache.spark.mllib.linalg.Vector
cannot be applied to (Any)
val parsedData = sample2.map(s => Vectors.dense(s(1))).cache()
^
有更好的方法吗?
我已经阅读了类似的帖子,但我觉得不够相似: 如何将已知结构的RDD转换为向量 以及这篇文章如何将org.apache.spark.rdd.RDD [Array[Double]]转换为Spark MLlib所需的Array[Double] 它处理文本数据