dask.dataframe.to_hdf

dask.dataframe.to_hdf

dask.dataframe.to_hdf(df, path, key, mode='a', append=False, scheduler=None, name_function=None, compute=True, lock=None, dask_kwargs=None, **kwargs)[源代码]

将 Dask DataFrame 存储到分层数据格式 (HDF) 文件

这是 Pandas 同名函数的并行版本。有关共享关键字参数的更多详细信息,请参阅 Pandas 文档字符串。

此函数与 Pandas 版本的不同之处在于,它并行保存 Dask DataFrame 的多个分区,可以保存到多个文件中,或者保存到同一文件内的多个数据集中。您可以通过在文件名或数据路径中使用星号 * 以及一个可选的 name_function 来指定这种并行性。星号将被替换为从 0 开始的递增整数序列,或者被替换为对这些整数中的每一个调用 name_function 的结果。

此函数仅支持 Pandas 'table' 格式,不支持更专业的 'fixed' 格式。

参数
路径string, pathlib.Path

目标文件的路径。支持字符串、pathlib.Path 或任何实现 __fspath__ 协议的对象。可以包含 * 来表示多个文件名。

关键字符串

文件内的数据路径。可能包含一个 * 来表示多个位置。

name_function函数

一个将上述选项中的 * 转换为字符串的函数。应接受一个从 0 到分区数量的数字,并返回一个字符串。(参见下面的示例)

计算布尔

是否立即执行。如果为 False,则返回一个 dask.Delayed 值。

bool, Lock, 可选

用于防止并发问题的锁。默认情况下,如果需要锁,将根据您的调度器使用 threading.Lockmultiprocessing.LockSerializableLock。有关锁选择的更多信息,请参阅 dask.utils.get_scheduler_lock。

调度器字符串

要使用的调度器,如“线程”或“进程”

**其他:

更多信息请参见 pandas.to_hdf

返回
文件名列表

如果 compute 为 True,则返回。每个分区保存到的文件名列表。

延迟dask.Delayed

如果 compute 为 False,则返回。延迟对象,用于在计算时执行 to_hdf

示例

将数据保存到单个文件

>>> df.to_hdf('output.hdf', '/data')            

将数据保存到同一文件内的多个数据路径:

>>> df.to_hdf('output.hdf', '/data-*')          

保存数据到多个文件:

>>> df.to_hdf('output-*.hdf', '/data')          

使用多进程调度器将数据保存到多个文件中:

>>> df.to_hdf('output-*.hdf', '/data', scheduler='processes') 

指定自定义命名方案。这将文件写为 ‘2000-01-01.hdf’, ‘2000-01-02.hdf’, ‘2000-01-03.hdf’, 等等。

>>> from datetime import date, timedelta
>>> base = date(year=2000, month=1, day=1)
>>> def name_function(i):
...     ''' Convert integer 0 to n to a string '''
...     return base + timedelta(days=i)
>>> df.to_hdf('*.hdf', '/data', name_function=name_function)