代码之家  ›  专栏  ›  技术社区  ›  moshevi

在不读取文件的情况下使用拼花文件统计信息

  •  1
  • moshevi  · 技术社区  · 8 年前

    据我所知,拼花文件有列的最小/最大统计。 我的问题是如何在不读取整个文件的情况下使用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
    
    2 回复  |  直到 8 年前
        1
  •  3
  •   Uwe L. Korn    8 年前

    您可以在 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
    
        2
  •  0
  •   moshevi    8 年前

    经过一些额外的搜索,我找到了这个 sorted_partitioned_columns 在 fastparquet 模块。

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

    例子:

    >>> import fastparquet
    >>> fastparquet.api.sorted_partitioned_columns(pf)
    {'id': {'min': [1, 5, 10], 'max': [4, 9, 20]}}