使用 Dask 从多个 Python 进程写入 Parquet 文件
Writing a Parquet file from multiple Python processes using Dask
是否可以从 Python 中的不同进程写入相同的 Parquet 文件夹?
我用fastparquet
.
它似乎可以工作,但我想知道 _metadata
文件怎么可能没有冲突,以防两个进程同时写入它。
此外,为了使其正常工作,我不得不使用 ignore_divisions=True
,这对于稍后读取 Parquet 文件时获得快速性能来说并不理想,对吧?
Dask 整合了来自不同进程的元数据,因此它只在其余部分完成后才写入 _metadata
文件,这发生在单个线程中。
如果您使用自己的多处理设置将单独的 parquet 文件写入单个文件夹,每个文件通常会写入单个数据文件,根本不会 _metadata
。您可以像 Dask 那样收集片段,或者在数据文件准备好后整合元数据。
是否可以从 Python 中的不同进程写入相同的 Parquet 文件夹?
我用fastparquet
.
它似乎可以工作,但我想知道 _metadata
文件怎么可能没有冲突,以防两个进程同时写入它。
此外,为了使其正常工作,我不得不使用 ignore_divisions=True
,这对于稍后读取 Parquet 文件时获得快速性能来说并不理想,对吧?
Dask 整合了来自不同进程的元数据,因此它只在其余部分完成后才写入 _metadata
文件,这发生在单个线程中。
如果您使用自己的多处理设置将单独的 parquet 文件写入单个文件夹,每个文件通常会写入单个数据文件,根本不会 _metadata
。您可以像 Dask 那样收集片段,或者在数据文件准备好后整合元数据。