我正在使用10GB的训练数据帧。我使用H2o库进行更快的计算。每次加载数据集时,我都应该将数据帧转换为H2o对象,这需要花费大量时间。有没有办法存储转换后的H2o对象? (这样我每次在构建模型上进行跟踪时都可以跳过as.H2o(trainingset)步骤)
答案 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.importFile
或h2o.importFolder
。有关正确用法,请参见功能帮助。
或者在使用as.h2o
进行转换之前,将文件另存为csv / txt,然后使用上述功能之一将其直接加载到h2o中。
答案 1 :(得分:2)
as.h2o(d)
的工作原理如下(即使客户端和服务器是同一台机器):
d
导出到临时位置的csv文件中h2o.uploadFile()
,该HTTP会对服务器进行HTTP POST,然后进行单线程导入。相反,请在某处(*)预先准备数据,然后使用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。