首页 > 解决方案 > 使用 Dask 从多个 Python 进程编写 Parquet 文件

问题描述

是否可以从 Python 中的不同进程编写相同的 Parquet 文件夹?

我用fastparquet.

它似乎有效,但我想知道_metadata如果两个进程同时写入文件,文件如何不会发生冲突。

另外,为了使其正常工作,我必须使用ignore_divisions=True这对于稍后在阅读 Parquet 文件时获得快速性能来说并不理想,对吗?

标签: daskparquetfastparquet

解决方案


Dask 整合了来自不同进程的元数据,因此它只_metadata在其余部分完成后才写入文件,这发生在单个线程中。

如果您使用自己的多处理设置将单独的 parquet 文件写入单个文件夹,则每个文件通常都会写入单个数据文件,而根本不会写入_metadata。您可以像 Dask 那样收集碎片,也可以在数据文件准备好后整合元数据。


推荐阅读