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.Lock
、multiprocessing.Lock
或SerializableLock
。有关锁选择的更多信息,请参阅 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)