【发布时间】:2018-09-13 01:03:18
【问题描述】:
我的问题不是:
- Efficient way to maintain a h2o data frame
- H2O running slower than data.table R
- Loading data bigger than the memory size in h2o
硬件/空间:
- 32 Xeon 线程 w/ ~256 GB Ram
- ~65 GB 的数据要上传。 (约 56 亿个细胞)
问题:
将我的数据上传到 h2o 需要几个小时。这不是任何特殊处理,只有“as.h2o(...)”。
使用“fread”将文本放入空间只需不到一分钟,然后我进行了一些行/列转换(差异、滞后)并尝试导入。
在尝试任何类型的“as.h2o”之前,总 R 内存约为 56GB,因此分配的 128 应该不会太疯狂,不是吗?
问题:
我该怎么做才能使这个加载到 h2o 中花费不到一个小时?它应该需要一分钟到几分钟,不再。
我尝试过的:
- 在“h2o.init”中将内存提升到 128 GB
- 使用 slam、data.table 和 options(...
- 在“as.h2o”之前转换为“as.data.frame”
- 写入 csv 文件(r write.csv 会阻塞并需要很长时间。不过它写入了很多 GB,所以我理解)。
- 写入sqlite3,一个表的列太多,这很奇怪。
- 检查驱动器缓存/交换以确保那里有足够的 GB。也许java正在使用缓存。 (仍在工作)
更新:
所以看起来我唯一的选择是制作一个巨大的文本文件,然后使用“h2o.importFile(...)”。我最多写了15GB。
更新 2:
这是一个可怕的 csv 文件,大小约为 22GB(~2.4Mrows,~2300 cols)。值得一提的是,从下午 12 点 53 分到下午 2 点 44 分才编写了 csv 文件。编写完成后,导入它的速度要快得多。
【问题讨论】: