我如何将每个Parquet行组读入一个单独的分区?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何将每个Parquet行组读入一个单独的分区?相关的知识,希望对你有一定的参考价值。

我有一个包含10个行组的镶木地板文件:

In [30]: print(pyarrow.parquet.ParquetFile("/tmp/test2.parquet").num_row_groups)
10

但是当我使用Dask Dataframe加载它时,它将被读取到单个分区中:

In [31]: print(dask.dataframe.read_parquet("/tmp/test2.parquet").npartitions)
1

这似乎与this answer相矛盾,它指出Dask Dataframe将每个Parquet行组读入一个单独的分区。

如何使用Dask Dataframe将每个Parquet行组读入一个单独的分区中?还是必须将数据分发到不同的文件中才能起作用?

答案

我相信fastparquet将分别读取每个行组,并且pyarrow显然不被认为是bug或至少可以在dask问题跟踪器上请求的功能增强这一事实。我倾向于同意每个包含一个行组的文件集和一个包含相同行组的文件应产生相同的分区结构。

以上是关于我如何将每个Parquet行组读入一个单独的分区?的主要内容,如果未能解决你的问题,请参考以下文章