1

据我了解,镶木地板文件具有列的最小/最大统计信息。我的问题是如何在不读取整个文件的情况下使用 python 读取这些统计信息?

如果有帮助,我也有_common_metadata文件_metadata


我的具体问题是获取此文件系统中每个证券交易所分区的最大日期(每个年份分区包含多个具有日期列的镶木地板文件):

C:.
│   _common_metadata
│   _metadata
├───source=NASDAQ
│   ├───year=2017
│   └───year=2018
├───source=London_Stock_Exchange
│   ├───year=2014
│   ├───year=2015
├───source=Japan_Exchange_Group
│   ├───year=2017
│   └───year=2018
└───source=Euronext
    ├───year=2017
    └───year=2018
4

2 回答 2

5

您可以在每个 RowGroup 的基础上提取它们pyarrow

import pyarrow.parquet as pq

pq_file = pq.ParquetFile(…)
# Get metadata for the i-th RowGroup
rg_meta = pq_file.metadata.row_group(i)
# Get the "max" statistic for the k-th column
max_of_col = rq_meta.column(col).statistics.max
于 2018-07-12T07:22:13.647 回答
0

经过一些额外的搜索后,我sorted_partitioned_columnsfastparquet模块中找到了这个。

它给出了每个文件的最小值和最大值!

例子:

>>> import fastparquet
>>> fastparquet.api.sorted_partitioned_columns(pf)
{'id': {'min': [1, 5, 10], 'max': [4, 9, 20]}}
于 2018-07-11T15:15:30.990 回答