首页 > 解决方案 > 使用 pandas.DataFrame.to_parquet 控制行组

问题描述

要将 parquet 文件读入多个分区,应使用行组存储它(请参阅如何使用 dask/dask-cudf 将单个大型 parquet 文件读入多个分区?)。pandas 文档描述了列的分区,pyarrow 文档描述了如何编写多个行组。使用 pandas DataFrame.to_parquet方法,我可以接口写入多个行组的能力,还是它总是写入单个分区?如果是,如何?

虽然数据集很小(目前只有 3 GB),但我想读入多个分区,以便使用 dask 进行后续处理将使用多个内核(我可以重新分区,但这会产生额外的开销)(我可能会使用大约 10 秒的数据集GB 之后,仍然很小但对于 RAM 来说太大了)。

标签: pythonpandasdataframeparquet

解决方案


row_group_size使用 pyarrow 时,您可以简单地提供关键字参数。请注意,pyarrow 是默认引擎。

df.to_parquet("filename.parquet", row_group_size=500, engine="pyarrow")

推荐阅读