【问题标题】:h2o.importFile() does not import full data frame in Rh2o.importFile() 不会在 R 中导入完整的数据框
【发布时间】:2018-08-25 05:17:06
【问题描述】:

我有一个 50 行(主题)和 572288 列(变量)的数据框

data.frame 解析为 h2o 对象时,我会丢失变量并最终得到 51 行和 419431 个变量。

如果我减少或增加行数,它不会改变。

library("data.table")
library("h2o")
options("h2o.use.data.table"=T)
h2o.init()
trainset=as.data.frame(matrix(ncol=572288,nrow=50,1))
fwrite(trainset, "train.csv", sep=",")
train=h2o.importFile("train.csv", sep=",")
dim(trainset)
dim(train)

我的输出是:

> h2o.init()
 Connection successful!

R is connected to the H2O cluster:
H2O cluster uptime:         1 hours 2 minutes
H2O cluster timezone:       Europe/Berlin
H2O data parsing timezone:  UTC
H2O cluster version:        3.18.0.11
H2O cluster version age:    3 months
H2O cluster name:           H2O_started_from_R_chiocchetti_lub856
H2O cluster total nodes:    1
H2O cluster total memory:   9.84 GB
H2O cluster total cores:    24
H2O cluster allowed cores:  20
H2O cluster healthy:        TRUE
H2O Connection ip:          localhost
H2O Connection port:        54321
H2O Connection proxy:       NA
H2O Internal Security:      FALSE
H2O API Extensions:         XGBoost, Algos, AutoML, Core V3, Core V4
R Version:                  R version 3.4.3 (2017-11-30)

> trainset=as.data.frame(matrix(ncol=572288,nrow=50,1))
> fwrite(trainset, "train.csv", sep=",")
>
> train=h2o.importFile("train.csv", sep=",")
|======================================================================|100%
> dim(train)
[1]     51 538177
> dim(trainset)
[1]     50 572288

在我看来,从文件中读回行时,我遇到了某种内存问题。但是,我不知道如何克服这个问题。

最终目标是做一个随机森林。

【问题讨论】:

  • 尝试在h2o.init(max_mem_size = '12G') 中分配更多内存,或者大于默认分配的 9.84 GB 的其他值,这在您的系统上是可行的。如果你得到更多的行/列,你就知道这就是问题所在。
  • 不幸的是,这根本没有任何效果,我仍然得到相同的结果,我增加到 24GB 我注意到的唯一区别是我是否使用原始数据(填充值 0 1 或 2)或虚拟矩阵。但无论我分配多少内存,都会重现错误
  • 尝试使用data.table::fread()fread 以提高速度,但您也可以使用read.csv)读取数据,然后设置as.h2o()
  • 确保 fread 返回一个 50 x 572,288
  • 我能够重现您正在使用的 h2o 版本和最新版本的问题,如下所示,这可能是一个错误。但是,如果您可以继续减少所拥有的列数并查看问题在哪里消失,那将会很有趣(我为较小的矩阵测试了相同的代码,然后 h2o 按预期工作)。谢谢!

标签: r h2o


【解决方案1】:

这可能是一个错误;我在这里为它创建了一张 jira 票:https://0xdata.atlassian.net/browse/PUBDEV-5860

如果您有 jira 帐户,请随时更新票证。

【讨论】:

  • 非常感谢...我更新了标题(它添加了一行并删除了几列)并指定 data.table::fread() 可以正常工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-25
  • 1970-01-01
  • 2019-10-31
  • 2013-06-15
相关资源
最近更新 更多