2016-04-13 49 views
2

在spark.mllib.feature中使用PCA時,我的輸入數據的列超過65535,但在PCA中定義的RowMatrix是< 65535,這是否意味着我無法使用PCA ?PCA輸入錯誤參數超過65535

+0

@ eliasah,錯誤是線程「main」中的異常java.lang.IllegalArgumentException:具有超過65535個cols的參數:84619位於org.apache.spark.mllib.linalg.distributed.RowMatrix.checkNumColumns(RowMatrix.scala: 135) –

+0

如果提供的答案之一解決您的問題,請接受它,所以我們可以關閉這個問題! – eliasah

回答

2

目前,PCA實現似乎有限制內存中擬合d^2協方差/格雷米矩陣條目(d是矩陣的列數/維數)。

現在它被固定爲65535,因爲PCA的當前實現不具有很大的可擴展性。所以你不能在你的情況下實際使用PCA。

參考:source code.

有一個JIRA issue計劃實施這應該是可擴展的概率主成分分析算法。

+0

非常感謝..... –

+0

@LiYu你可以接受答案或解釋爲什麼它不適合你,所以可以改進?謝謝。 – zero323