Parquet 子文件的数量

Number of Parquet sub files

来自同一个 csv file 时,Dask 生成了一个包含许多小文件(超过 200 个大小为 3MB 的文件)和 R Sergeant 的镶木地板文件生成了 2 .parquet 个文件,大小分别为 520 MB 和 280 MB)。
我们尝试将 fastparquet.writerow_group_offset 关键字一起使用,但没有成功。在Dask中使用partition_on添加了一组分区,但每个分区内有许多子.parquet文件(数百甚至数千个)。

我们如何控制 Python 和 R 中 parquet 文件的大小?

fastparquet,dask 的默认镶木地板编写器,将为每个输入数据块至少制作一个镶木地板文件,如果您使用 partition_onrow_group_offset - 这些也会作用于输入一次一个数据块。默认情况下,您将拥有的块数等于 CSV 文件的数量。

为了减少块的数量,您必须重新调整数据(这可能很昂贵,因此只有在明确需要时才这样做),例如,

df = df.repartition(npartitions=10)

写之前。此外,如有必要,您可以使用 force=True 尝试上述操作。

请注意,在许多情况下,结合设置索引 (set_index) 和半排序数据来执行此 repartition/rechunk 操作是有意义的,这可以为以后产生更好的性能查询。