claudevdm opened a new pull request, #39933:
URL: https://github.com/apache/beam/pull/39933

   ReadFooterSchema, FileScemas.canonical, CollectDistinctSchemas)
   
   New, not yet wired code that turns a PCollection of file paths into the list 
of distinct schemas those files carry, with file counts. The pre-pass that will 
use it exists because manifest entries are immutable: a file registered before 
the table knows one of its columns never gets stats for that column, so the 
table schema has to be brought up to date before any file is registered, and 
that requires looking at every footer first.
   
   ReadFooterSchema (DoFn<String, String>) reads each Parquet footer on the 
BoundedAsyncTasks pool and emits the file's canonical schema as JSON. 
Non-Parquet paths and unknown extensions contribute nothing; a footer that 
cannot be read or converted is logged and counted (numFooterReadErrors) but 
never fails the pipeline: the per-file registration step reports such files 
individually later.
   
   FileSchemas.canonical sorts struct fields by name at every level and 
renumbers ids in deterministic order.
   The ids are positional and never consumed downstream: the commit side 
reconciles columns by name (unionByNameWith).
   
   CollectDistinctSchemas is a CombineFn over the canonical JSON strings 
(Map<String, Long> accumulator) producing List<KV<String, Long>> ordered most 
common first, ties broken by the JSON text for determinism. The most common 
schema goes first because the commit side uses it as the seed when the table 
does not exist yet.
   
   
   ------------------------
   
   Thank you for your contribution! Follow this checklist to help us 
incorporate your contribution quickly and easily:
   
    - [ ] Mention the appropriate issue in your description (for example: 
`addresses #123`), if applicable. This will automatically add a link to the 
pull request in the issue. If you would like the issue to automatically close 
on merging the pull request, comment `fixes #<ISSUE NUMBER>` instead.
    - [ ] Update `CHANGES.md` with noteworthy changes.
    - [ ] If this contribution is large, please file an Apache [Individual 
Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
   
   See the [Contributor Guide](https://beam.apache.org/contribute) for more 
tips on [how to make review process 
smoother](https://github.com/apache/beam/blob/master/CONTRIBUTING.md#make-the-reviewers-job-easier).
   
   To check the build health, please visit 
[https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md](https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md)
   
   GitHub Actions Tests Status (on master branch)
   
------------------------------------------------------------------------------------------------
   [![Build python source distribution and 
wheels](https://github.com/apache/beam/actions/workflows/build_wheels.yml/badge.svg?event=schedule&&?branch=master)](https://github.com/apache/beam/actions?query=workflow%3A%22Build+python+source+distribution+and+wheels%22+branch%3Amaster+event%3Aschedule)
   [![Python 
tests](https://github.com/apache/beam/actions/workflows/python_tests.yml/badge.svg?event=schedule&&?branch=master)](https://github.com/apache/beam/actions?query=workflow%3A%22Python+Tests%22+branch%3Amaster+event%3Aschedule)
   [![Java 
tests](https://github.com/apache/beam/actions/workflows/java_tests.yml/badge.svg?event=schedule&&?branch=master)](https://github.com/apache/beam/actions?query=workflow%3A%22Java+Tests%22+branch%3Amaster+event%3Aschedule)
   [![Go 
tests](https://github.com/apache/beam/actions/workflows/go_tests.yml/badge.svg?event=schedule&&?branch=master)](https://github.com/apache/beam/actions?query=workflow%3A%22Go+tests%22+branch%3Amaster+event%3Aschedule)
   
   See [CI.md](https://github.com/apache/beam/blob/master/CI.md) for more 
information about GitHub Actions CI or the [workflows 
README](https://github.com/apache/beam/blob/master/.github/workflows/README.md) 
to see a list of phrases to trigger workflows.
   


-- 
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]

Reply via email to