rahulketch opened a new pull request, #3243: URL: https://github.com/apache/parquet-java/pull/3243
<!-- Thanks for opening a pull request! If you're new to Parquet-Java, information on how to contribute can be found here: https://parquet.apache.org/docs/contribution-guidelines/contributing Please open a GitHub issue for this pull request: https://github.com/apache/parquet-java/issues/new/choose and format pull request title as below: GH-${GITHUB_ISSUE_ID}: ${SUMMARY} or simply use the title below if it is a minor issue: MINOR: ${SUMMARY} --> ### Rationale for this change Parquet-java does not emit or read stats for int96 timestamp columns. Since int96 is used as the default timestamp in spark, this limits a lot of optimization opportunities. Engines like [Photon](https://www.databricks.com/product/photon) populate the statistics for the int96 timestamps correctly. So parquet-java should also emit the statistics, and also allow reading these statistics from known good writers. ### What changes are included in this PR? 1. Defining column ordering for int96 2. Implementation of comparator for int96 3. A flag `parquet.read.int96stats.enabled` to control if the stats are read. It is defaulted to true 4. `ValidInt96Stats`: Reads stats from known good writers. Currently including: a. `parquet-mr` b. `photon` 5. Fixing tests which fail due to this change ### Are these changes tested? 1. Added more unit tests for the new behaviour ### Are there any user-facing changes? 1. `toParquetStatistics` and `fromParquetStatistics` are no longer static functions. It doesn't look like there is a good reason for these functions to be static. 2. Signatures of some of the constructors of `ParquetMetadataConverter` is not different due to an added parameter. Closes #3242 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
