【问题标题】:Saving H2o data frame保存 H2o 数据框
【发布时间】:2019-06-22 08:54:54
【问题描述】:

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

【问题讨论】:

  • my_object<-as.h2o(my_training)?
  • 你能举个例子吗?无论如何,10GB 是相当大的对象,我不希望很快发生。

标签: r h2o


【解决方案1】:

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

【讨论】:

  • 对于 Python:h2o.export_file(df, 'C:\\PATH\\TO\\FILE').
【解决方案2】:

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 服务器上。

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

【讨论】:

    猜你喜欢
    • 2015-07-20
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 2015-08-28
    相关资源
    最近更新 更多