首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >h2o闪亮的省水帧存储到磁盘

h2o闪亮的省水帧存储到磁盘
EN

Stack Overflow用户
提问于 2016-12-12 23:50:15
回答 2查看 1.1K关注 0票数 1

我正在尝试通过从spark拼接文件创建h2o框架来导入框架。文件大小为2 2GB,行大小约为12M,稀疏向量大小为12k。它在镶木地板格式中不是那么大,但导入永远需要花费时间。在h2o中,它实际上报告为447mb压缩大小。实际上很小。

我做错了吗?当我实际完成导入(花了39分钟)时,h2o中是否有任何形式可以将帧保存到磁盘以便下次快速加载??

我知道h2o在后台做了一些魔术,花了这么长时间,但我只找到了一个下载csv的选项,对于11k x 1M稀疏数据来说,它既慢又大,我怀疑它的导入速度是否更快。

我觉得好像少了一个部分。任何有关h2o数据导入/导出的信息都将受到欢迎。模型保存/加载工作得很好,但训练/val/测试数据加载似乎是一个不合理的缓慢过程。

我有10个火花工,每个人10克,然后给司机8克。这应该足够了。

EN

回答 2

Stack Overflow用户

发布于 2016-12-14 16:58:13

使用h2o.exportFile() (Python中为h2o.export_file()),并将parts参数设置为-1。-1实际上意味着集群中的每台机器将只导出自己的数据。在您的情况下,最终将有10个文件,并且应该比其他情况快10倍。

要读回它们,请使用h2o.importFile()并在加载时指定所有10个部分:

代码语言:javascript
复制
frame <- h2o.importFile(c(
  "s3n://mybucket/my.dat.1",
  "s3n://mybucket/my.dat.2",
  ...
  ) )

通过给出一个文件数组,它们将被并行加载和解析。

对于本地LAN群集,建议使用HDFS。在EC2上运行集群时,通过将文件保存在S3上,我得到了合理的结果。

票数 1
EN

Stack Overflow用户

发布于 2016-12-15 19:31:07

我建议将数据帧从Spark导出为SVMLight文件格式(参见MLUtils.saveAsLibSVMFile(...)。然后,此格式可由H2O本机摄取。

正如达伦指出的那样,你可以从H2O导出多个部分的数据,这会加快导出速度。但是,H2O目前只支持导出到CSV文件。对于非常稀疏数据的用例,这是次优的。此功能可通过Java API访问:

代码语言:javascript
复制
water.fvec.Frame.export(yourFrame, "/target/directory", yourFrame.key.toString, true, -1 /* automatically determine number of part files */)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41104540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档