首页 > 解决方案 > 有没有办法增量更新 Dask 元数据文件?

问题描述

我正在尝试处理数据集并在 Dask 中将其写入时进行增量更新。Dask 元数据文件在重新读取处理后的数据时会有很大帮助。但是,当我将新的分区/子集写入相同的路径时,那里的元数据会被新的分区/子集覆盖,而不是在包含它们的情况下进行更新。

import dask.dataframe as dd

df = dd.read_parquet(read_path)
# some transformations
df = …
df.to_parquet(write_path, partition_on=[col1, col2, …], write_metadata_file=True)

看了几个地方,还没有找到明显的方法来做到这一点。有谁知道是否有人做过处理这种用例的事情?可以增量更新元数据文件,也可以对其中的一些文件进行编辑/组合。任何建议将不胜感激。

标签: daskdask-distributedfastparquetdask-dataframe

解决方案


Dask 的to_parquet()方法有一种append模式,我认为这正是你想要的:

append : bool, optional

    If False (default), construct data-set from scratch.
    If True, add new row-group(s) to an existing data-set.
    In the latter case, the data-set must exist, and the schema must match the input data.

我已经成功地使用了这个pyarrow引擎,版本1.0.1


推荐阅读