我試圖運行Spark(1.3.1)Mllib k-means聚類浮點數的數據幀。 我以下通過火花Spark Mllib kmeans示例,用數據幀代替textFile
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()
^
是否有這樣做的更好的辦法?
我已閱讀本類似的帖子,但我沒有找到它足夠類似: How to turn a known structured RDD to Vector 這一個How to convert org.apache.spark.rdd.RDD[Array[Double]] to Array[Double] which is required by Spark MLlib 與文本數據涉及
所以這個問題存在於Hadoop集羣,其中一個表是使用蜂巢查詢上運行星火的情況下。因此數據幀。隨着越來越多的組織轉向Hadoop,我懷疑這將成爲越來越普遍的情況。 –