我有一個MLLIB分佈行矩陣,其中行順序無關緊要。有什麼方法可以輕鬆將其轉換爲微風密集的矩陣?我想可以逐行映射,但我對微風整體相對不熟悉。將行矩陣轉換爲Breeze密集矩陣
編輯:使用X.rows.map(x => x.toArray)
,我設法將它轉換成形式爲org.apache.spark.rdd.RDD [Array [Double]]的RDD。我相信這是正確的方向邁出的一步......
我有一個MLLIB分佈行矩陣,其中行順序無關緊要。有什麼方法可以輕鬆將其轉換爲微風密集的矩陣?我想可以逐行映射,但我對微風整體相對不熟悉。將行矩陣轉換爲Breeze密集矩陣
編輯:使用X.rows.map(x => x.toArray)
,我設法將它轉換成形式爲org.apache.spark.rdd.RDD [Array [Double]]的RDD。我相信這是正確的方向邁出的一步......
最終獲得它下面的代碼工作。
import breeze.linalg.{DenseVector => BDV, DenseMatrix => BDM, sum}
val arr = X.rows.map(x => x.toArray).collect.flatten
val dm = new BDM(X.numRows().toInt, X.numCols().toInt, arr)
感謝@ @ ar7幫助。
您是否嘗試過對RDD進行「收集」,然後將其轉換爲微風矩陣? – ar7
嗯,使用RDD上的collect,我最終得到:'breeze.linalg.DenseMatrix [Array [Double]]'。我需要的是'breeze.linalg.DenseMatrix [Double]'。不過謝謝你的建議。我相信我只需要將數組轉換爲矢量。 – mongolol