有没有办法增量更新 Dask 元数据文件?

Is there a way to incrementally update Dask metadata file?

我正在尝试处理数据集并在将其写入 Dask 时进行增量更新。 Dask 元数据文件在重新读取处理后的数据时会有很大帮助。但是,当我将新的 partitions/subsets 写入同一路径时,那里的元数据会被新的 partitions/subsets 覆盖,而不是随它们一起更新。

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)

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

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

此问题特定于 fastparquet 引擎(在 pyarrow 中工作正常)。