【问题标题】:Import .rds file to h2o frame directly将 .rds 文件直接导入到 h2o 框架
【发布时间】:2018-03-08 16:01:35
【问题描述】:
我保存了一个大的.rds 文件,我尝试使用某些功能将.rds 文件直接导入到 h2o 框架,因为我在 R 环境中读取该文件然后使用as.h2o 函数是不可行的转换。
我正在寻找一些快速有效的方法来处理它。
我的尝试:
- 我已尝试读取该文件,然后将其转换为 h2o 框架。但是,这是一个非常耗时的过程。
- 我尝试将文件保存为 .csv 格式并使用
h2o.import() 和 parse=T。
由于内存限制,我无法保存完整的数据帧。
请给我建议任何有效的方法。
任何建议都将受到高度赞赏。
【问题讨论】:
标签:
r
dataframe
datatable
dplyr
h2o
【解决方案1】:
R 中的本机读/写功能效率不高,因此我建议为此使用 data.table。以下两个选项都以某种方式使用了 data.table。
首先,我建议您尝试以下操作:安装 data.table 包并加载 h2o 库后,设置 options("h2o.use.data.table"=TRUE)。这样做是确保as.h2o() 在下面使用 data.table 将 R data.frame 转换为 H2O Frame。关于as.h2o() 工作原理的一些注意事项 - 它将文件从 R 写入磁盘,然后使用 H2O 的并行文件读取器 h2o.importFile() 将其再次读回 H2O。
还有另一种选择,实际上是同一件事,尽管您的 RAM 不需要一次存储两个数据副本(一个在 R 中,一个在 H2O 中),因此如果您是资源真的很紧张。
将文件另存为 CSV 或压缩的 CSV。如果您在将数据框以 CSV 格式保存到磁盘时遇到问题,那么您应该确保您使用的是高效的文件编写器,例如 data.table::fwrite()。将文件保存到磁盘后,使用h2o.importFile() 将其直接读入 H2O。