保存H2o数据帧

时间:2019-01-29 09:17:32

标签: r h2o

我正在使用10GB的训练数据帧。我使用H2o库进行更快的计算。每次加载数据集时,我都应该将数据帧转换为H2o对象,这需要花费大量时间。有没有办法存储转换后的H2o对象? (这样我每次在构建模型上进行跟踪时都可以跳过as.H2o(trainingset)步骤)

2 个答案:

答案 0 :(得分:2)

使用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中。

答案 1 :(得分:2)

as.h2o(d)的工作原理如下(即使客户端和服务器是同一台机器):

  1. 在R中,将d导出到临时位置的csv文件中
  2. 调用h2o.uploadFile(),该HTTP会对服务器进行HTTP POST,然后进行单线程导入。
  3. 从该导入返回句柄
  4. 删除它制作的临时csv文件。

相反,请在某处(*)预先准备数据,然后使用h2o.importFile()(请参阅http://docs.h2o.ai/h2o/latest-stable/h2o-r/docs/reference/h2o.importFile.html)。这样可以避免处理本地文件,还可以并行读取和导入。

*:为获得最快的结果,“某处”应尽可能靠近服务器。为了使其完全起作用,“某处”必须位于 server 可以看到的地方。如果客户端和服务器是同一台计算机,则这是自动的。在另一个极端,如果您的服务器是另一大陆上AWS数据中心中的计算机集群,则将数据放入S3效果很好。您也可以将其放在HDFS或Web服务器上。

有关R和Python中的一些示例,请参见http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-munging/importing-data.html