如何有效地阅读R中的许多hdf5对象?

时间:2014-06-12 07:57:53

标签: r hdf5

我正在使用'rhdf5'软件包来读取大约5000个对象的大文件(2GB)。 我必须使用这个包,因为它似乎是唯一一个支持bit64。

问题如下,读取所有这些对象非常耗时:

  library(rhdf5)
  library(bit64)
  library(parallel)

  groups = h5ls(h5_file)
  obj_names = paste(groups$group[which(groups$otype == 'H5I_DATASET')], groups$name[which(groups$otype == 'H5I_DATASET')], sep='/')

  # now we have 'obj_names', a list of the names contained in the file: 'h5_file'

  h5read_by_name <- function(x) {
    h5read(file=h5_file, name=x, bit64conversion='bit64')
  }

  h5data = do.call(rbind, mclapply(obj_names, h5read_by_name, mc.cores=2))

即使使用多核加速一点也很长(天)。如果我使用更多核心,堆栈大小会爆炸,我已经处于硬限制。

有什么想法吗?

0 个答案:

没有答案