保存 H2o 数据框架

5

我正在使用一个10GB的训练数据框架。为了更快地计算,我使用H2o库。每次加载数据集时,我都需要将数据框架转换为H2o对象,这需要很长时间。有没有一种方法可以存储转换后的H2o对象?(这样我就可以跳过每次构建模型时的as.H2o(trainingset)步骤)


my_object<-as.h2o(my_training)? - NelsonGon
你能提供一个例子吗?而且10GB是相当大的对象,我不会指望它很快完成。 - panman
2个回答

5

使用 as.h2o(trainingset) 进行第一次转换后,您可以将文件导出/保存到磁盘上,并在以后再次导入它。

my_h2o_training_file <- as.h2o(trainingset)
path <- "whatever/my/path/is"
h2o.exportFile(my_h2o_training_file , path = path)

当您想要加载它时,请使用h2o.importFileh2o.importFolder。请参阅函数帮助以获取正确的用法。

或者,在使用as.h2o转换文件之前,将文件保存为csv / txt格式,并使用上述函数之一直接加载到h2o中。


2
对于Python:h2o.export_file(df, 'C:\\PATH\\TO\\FILE') - LoMaPh

4
as.h2o(d) 的工作方式如下(即使客户端和服务器在同一台机器上也是如此):
  1. 在R中,将 d 导出为一个临时位置的csv文件
  2. 调用 h2o.uploadFile() ,它会执行HTTP POST到服务器,然后进行单线程导入。
  3. 返回该导入的句柄
  4. 删除其制作的临时csv文件。
相反,预先在某个地方准备好您的数据(*), 然后使用 h2o.importFile() (参见http://docs.h2o.ai/h2o/latest-stable/h2o-r/docs/reference/h2o.importFile.html)。这样可以省去麻烦的本地文件处理,并且还可以进行并行读取和导入。
*: 为了获得最快的结果,“某个地方”应尽可能靠近服务器。为了让它正常工作,“某个地方”必须是服务器可以看到的地方。如果客户端和服务器在同一台机器上,则自动完成此操作。在另一个极端,如果您的服务器是位于AWS数据中心的机群在另一个大陆上,则将数据放入S3效果很好。您也可以将其放在HDFS上或Web服务器上。
请参见http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-munging/importing-data.html,其中包含R和Python的一些示例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接