Python: 获取ParquetDataset 的行数?
Python: Obtain number of rows for ParquetDataset?
如何获取以包含多个 parquet 文件的文件夹形式构建的 ParquetDataset 的行数。
我试过了
from pyarrow.parquet import ParquetDataset
a = ParquetDataset(path)
a.metadata
a.schema
a.commmon_metadata
我想在不读取数据集的情况下计算出总行数,因为它可能非常大。
最好的方法是什么?
您仍然需要触摸每个单独的文件,但幸运的是 Parquet 将每个文件的总行数保存在其页脚中。因此,您只需要读取每个文件的元数据即可确定其大小。以下代码将计算 ParquetDataset
中的行数
nrows = 0
dataset = ParquetDataset(..)
for piece in dataset.pieces:
nrows += piece.get_metadata().num_rows
对于 pyarrow >= 5.0.0:
from pyarrow.parquet import ParquetDataset
dataset = ParquetDataset(path, use_legacy_dataset=False)
nrows = sum(p.count_rows() for p in dataset.fragments)
如何获取以包含多个 parquet 文件的文件夹形式构建的 ParquetDataset 的行数。
我试过了
from pyarrow.parquet import ParquetDataset
a = ParquetDataset(path)
a.metadata
a.schema
a.commmon_metadata
我想在不读取数据集的情况下计算出总行数,因为它可能非常大。
最好的方法是什么?
您仍然需要触摸每个单独的文件,但幸运的是 Parquet 将每个文件的总行数保存在其页脚中。因此,您只需要读取每个文件的元数据即可确定其大小。以下代码将计算 ParquetDataset
nrows = 0
dataset = ParquetDataset(..)
for piece in dataset.pieces:
nrows += piece.get_metadata().num_rows
对于 pyarrow >= 5.0.0:
from pyarrow.parquet import ParquetDataset
dataset = ParquetDataset(path, use_legacy_dataset=False)
nrows = sum(p.count_rows() for p in dataset.fragments)