Provide callback to allow user defined key-value metadata merging strategy
- Lenguaje dominante
- Java
- Estrellas
- 3.1k
- Forks
- 1.6k
- Merge medio
- 3 d 12 h
- PR fusionados (30 d)
- 33
Descripción
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.*
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Comienza leyendo InitContext.getMergedKeyValueMetaData y el uso existente de ParquetInputFormat descrito en el issue. Traza cómo los metadatos clave-valor definidos por el usuario que entran en conflicto provocan actualmente que la combinación falle, y después define y documenta una estrategia basada en callbacks que los llamadores puedan proporcionar. Se considera completado cuando los metadatos compatibles se pueden combinar sin sobrescribir ParquetInputFormat, mientras que el comportamiento predeterminado sigue estando cubierto por pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- data-engineering
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100