Raunaq Morarka created PARQUET-2352:
---------------------------------------

             Summary: Update parquet format spec to allow truncation of row 
group min/max stats
                 Key: PARQUET-2352
                 URL: https://issues.apache.org/jira/browse/PARQUET-2352
             Project: Parquet
          Issue Type: Improvement
            Reporter: Raunaq Morarka


Column index stats are explicitly allowed to be truncated 
[https://github.com/apache/parquet-format/blob/master/src/main/thrift/parquet.thrift#L958]

However, it seems row group min/max stats are not allowed to be truncated 
[https://github.com/apache/parquet-format/blob/master/src/main/thrift/parquet.thrift#L219]
 although it is not explicitly clarified like in the column index case. This 
forces implementations to either drop min/max row group stats for columns with 
long strings and miss opportunities for filtering row groups or seemingly 
deviate from spec by truncating min/max row group stats.

https://issues.apache.org/jira/browse/PARQUET-1685 introduced a feature to 
parquet-mr which allows users to deviate from spec and configure truncation of 
min/max row group stats. Unfortunately, there is no way for readers to detect 
whether truncation took place.

Since the possibility of truncation exists and is not possible to explicitly 
detect, attempts to pushdown min/max aggregation to parquet have avoided 
implementing it for string columns (e.g. 
https://issues.apache.org/jira/browse/SPARK-36645)

Given the above situation, the spec should be updated to allow truncation of 
min/max row group stats. This would align the spec with current reality that 
string column min/max row group stats could be truncated.

Additionally, a flag could be added to the stats to specify whether min/max 
stats are truncated. Reader implementations could then safely implement min/max 
aggregation pushdown to strings for new data going forward by checking the 
value of this flag. When the flag is not found on existing data then it could 
be assumed that the data could be truncated.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to