我有像这样的H2O框架R对象
h2odf
A | B | C | D
--|---|---|---
1 | NA| 2 | 0
2 | 1 | 2 | 0
3 | NA| 2 | 0
4 | 3 | 2 | 0
我想删除B为NA(第1行和第3行)的所有行。我试过了
na <- is.na(h2odf[,"b"])
h2odf <- h2odf[!na,]
和
h2odf <- h2odf[!is.na(h2odf$B),]
和
h2odf <- subset(h2odf, B!=NA)
这适用于R Dataframe但不适用于H2O。给出这个错误:
Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page, :
ERROR MESSAGE:
DistributedException from localhost/127.0.0.1:54321: 'Cannot set illegal UUID value'
所需的输出
h2odf
A | B | C | D
--|---|---|---
2 | 1 | 2 | 0
4 | 3 | 2 | 0
我有一个选项是将其转换为R Dataframe,删除行并将其转换回H2O帧。但这需要很长时间,因为输入文件大小接近4.5 GB。是否可以在H2O帧十六进制对象本身中执行此操作?
我在aws集群上运行Rstudio。
答案 0 :(得分:1)
> class(h2odf)
[1] "H2OFrame"
> h2odf
A B C D
1 1 NA 2 0
2 2 1 2 0
3 3 NA 2 0
4 4 3 2 0
[4 rows x 4 columns]
> h2odf[!is.na(as.numeric(as.character(h2odf$B))),]
A B C D
1 2 1 2 0
2 4 3 2 0
[2 rows x 4 columns]