1
我有一個包含雙精度數組的JavaRDD。現在我想計算每個陣列之間的皮爾遜係數。但是,如果我將rdd轉換爲向量並應用statistics.corr(),函數將計算列,但我希望它可以計算行。任何人都可以提出一種方法來將我的數據轉換爲列,以便我可以應用corr()函數?計算Spark數據集上的Pearson相關度
編輯:statistics.corr()函數將javardd < vector>作爲輸入。
我有一個包含雙精度數組的JavaRDD。現在我想計算每個陣列之間的皮爾遜係數。但是,如果我將rdd轉換爲向量並應用statistics.corr(),函數將計算列,但我希望它可以計算行。任何人都可以提出一種方法來將我的數據轉換爲列,以便我可以應用corr()函數?計算Spark數據集上的Pearson相關度
編輯:statistics.corr()函數將javardd < vector>作爲輸入。
你可以嘗試每行轉換爲RDD [雙],並比較它們的組合(手動或環路)
val seriesX: RDD[Double] = ... // row1
val seriesY: RDD[Double] = ... // row2 must have the same number of partitions and cardinality as seriesX
val correlation: Double = Statistics.corr(seriesX, seriesY, "pearson")
,或者你可以嘗試調換您的RDD並通過得到的RDD到科爾( ..) - 在這裏轉置的一些想法 - How to transpose an RDD in Spark
如果您有多個行/記錄,但您希望每個人相對於其他人的相關性,矩陣可能太大,並且這兩個選項可能會過低(如果根本不可能)