2015-09-29 69 views
7

我想獲得一個稀疏矩陣到H2O,我想知道這是否可能。假設我們有以下幾點:如何將稀疏矩陣變成H2O?

test <- Matrix(c(1,0,0,1,1,1,1,0,1), nrow = 3, sparse = TRUE) 

,並假設我的本地H2O是localH2O,我似乎無法做到以下幾點:

as.h2o(test) 

它給人的錯誤:cannot coerce class "structure("dgCMatrix", package = "Matrix")" to a data.frame。這似乎是非常合理的,但是假設測試如此之大以至於我無法將其轉換爲數據幀,我想如何將它加載到H2O中?使用稀疏矩陣表示它只有500MB左右。

如何將稀疏矩陣加載到H2O中?

回答

7

將存儲在R內存中的數據傳輸到H2O的內存很麻煩,主要有兩個原因:R執行文件的POST以將數據流式傳輸到H2O中,其中1)沒有利用H2O的並行讀取器, 2)限制你的數據存在於R中。

而是利用R的h2o.importFile方法來利用H2O的並行讀取器。您的數據可以在任何地方生活:HDFS,S3,普通文件系統...

H2O運動SVMLight閱讀器,所以建議您保存稀疏矩陣從R svmlight格式。

希望這會有所幫助!

+1

這是非常有用的,但它引發瞭如何保存矩陣對象n svmlight格式的問題。除非我弄錯了,否則這是不重要的。有沒有一個很好的解決方案? –

+0

有一個內置函數'write.svmlight'的已停產RSofia Package。我沒有用過這個特殊情況,但是你可以通過'devtools :: install_github(「cran/RSofia」)安裝舊的源代碼' – zerweck