【发布时间】:2017-02-21 18:10:48
【问题描述】:
我必须读取并独立操作大型数据帧/numpy 数组的许多块。但是,这些块是以特定的、非统一的方式选择的,并且在 hdf5 文件中自然地分成组。每个组都足够小以适合内存(尽管即使没有限制,我想标准的分块过程应该就足够了。)
具体来说,而不是
f = h5py.File('myfile.hdf5')
x = da.from_array(f['/data'], chunks=(1000, 1000))
我想要更接近(伪代码)的东西:
f = h5py.File('myfile.hdf5')
x = da.from_array(f, chunks=(f['/data1'], f['/data2'], ...,))
http://dask.pydata.org/en/latest/delayed-collections.html 我相信暗示这是可能的,但我仍在阅读和理解 dask/hdf5。
我之前的实现使用了许多 CSV 文件,并根据需要使用自己的多处理逻辑读取它们。我想用 hdf5 将所有这些功能折叠成 dask。
是否可以通过 hdf5 组/读取进行分块并且我的思路可以吗?
【问题讨论】: