【发布时间】:2018-07-09 20:14:03
【问题描述】:
我是 Dask 和并行处理的新手。我有几个 hdf5 文件,我希望通过一个产生数字输出的函数来运行每个文件。在函数中,hdf5 变成了一个 dask 数组。我想知道并行化代码的最快方法是什么,以便每个 hdf5 文件可以同时运行该函数。我应该将 hdf5 文件转换为函数之外的 dask 数组吗?
【问题讨论】:
我是 Dask 和并行处理的新手。我有几个 hdf5 文件,我希望通过一个产生数字输出的函数来运行每个文件。在函数中,hdf5 变成了一个 dask 数组。我想知道并行化代码的最快方法是什么,以便每个 hdf5 文件可以同时运行该函数。我应该将 hdf5 文件转换为函数之外的 dask 数组吗?
【问题讨论】:
这个问题有点抽象,但是你可以使用dask.dataframe的read_hdf方法加载数据。
然后使用您的函数对其进行所需的计算(使用apply 或map_partitions 或applymap)。
您可以稍后转换为数组。
请注意,您可以使用以下语法一次读取多个 hdf 文件:
dd.read_hdf('myfile.*.hdf5', '/x')
更多信息:
http://dask.pydata.org/en/latest/dataframe-api.html#dask.dataframe.read_hdf
【讨论】:
dd.read_hdf('myfile.*.hdf5', '/x') 之后,您会得到一个包含此方法的dask.dataframe 对象。