我试图将稀疏矩阵导入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中?
答案 0 :(得分:8)
将存储在R存储器中的数据传输到H2O的内存是很麻烦的,原因主要有两个:R执行文件POST以将数据流式传输到H2O,1)不利用H2O的并行读取器,以及2)将您的数据限制为R中存在的数据。
相反,请使用R中的h2o.importFile方法来使用H2O的并行读取器。您的数据可以存在于任何地方:HDFS,S3,常规文件系统......
H2O运行SVMLight阅读器,因此建议以svmlight格式从R保存稀疏矩阵。
希望这有帮助!