Provide callback to allow user defined key-value metadata merging strategy
- Vorherrschende Sprache
- Java
- Sterne
- 3.1k
- Forks
- 1.6k
- Ø Merge
- 3 T. 12 Std.
- Gemergte PRs (30 T.)
- 33
Beschreibung
When merging footers, Parquet doesn't know how to merge conflicting user defined key-value metadata entries, and simply throws. It would be better to provide callbacks to let users define metadata merging strategies.
For example, in Spark SQL, we store our own schema information in Parquet files as key-value metadata (similar to parquet-avro). While trying to add schema merging support for reading Parquet files with different but compatible schemas, `InitContext.getMergedKeyValueMetaData` throws because we have different Spark SQL schemas stored in different Parquet data files. Thus, we have to overwrite `ParquetInputFormat` and merge the schema within `getSplits`, which is kinda hacky and inconvenient.
**Reporter**: [Cheng Lian](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=lian+cheng) / @liancheng
#### Related issues:
- [Release parquet-mr 1.6.0](https://github.com/apache/parquet-java/issues/1426) (is blocked by)
**Note**: *This issue was originally created as [PARQUET-194](https://issues.apache.org/jira/browse/PARQUET-194). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, InitContext.getMergedKeyValueMetaData und die im Issue beschriebene bestehende Verwendung von ParquetInputFormat zu lesen. Verfolge, wie widersprüchliche benutzerdefinierte Schlüssel-Wert-Metadaten derzeit dazu führen, dass das Zusammenführen einen Fehler auslöst, und definiere und dokumentiere anschließend eine Callback-basierte Strategie, die Aufrufer bereitstellen können. Als erledigt gilt die Aufgabe, wenn kompatible Metadaten zusammengeführt werden können, ohne ParquetInputFormat zu überschreiben, während das Standardverhalten weiterhin durch Tests abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- data-engineering
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100