apache / apache/parquet-java

Parquet file containing arrays, written by Parquet-MR, cannot be read again by Parquet-MR

Aperta
#2,631 18 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Component: Avro Component: Parquet Priority: Blocker Type: bug
Lingua principale
Java
Stelle
3.1k
Fork
1.6k
Merge medio
3g 12h
PR unite (30g)
33

Descrizione

In the attached files, there is one original file, and one written modified file that results after reading the original file and writing it back with Parquet-MR, with a few values modified. The schema should not be modified, since the schema of the input file is used as the schema to write the output file. However, the output file has a slightly modified schema that then cannot be read back the same way again with Parquet-MR, resulting in the exception message:  java.lang.ClassCastException: optional binary element (STRING) is not a group

My guess is that the issue lies in the Avro schema conversion.

The Parquet files attached have some arrays and some nested fields.

**Environment**: Windows 10
**Reporter**: [Devon Kozenieski](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=devonk)
#### Related issues:
- [parquet schema conflict: optional binary (UTF8) is not a group](https://issues.apache.org/jira/browse/HUDI-864) (is depended upon by)
#### Original Issue Attachments:
- [modified.parquet](https://issues.apache.org/jira/secure/attachment/13030885/modified.parquet)
- [original.parquet](https://issues.apache.org/jira/secure/attachment/13030884/original.parquet)
- [parquet-diff.png](https://issues.apache.org/jira/secure/attachment/13042124/parquet-diff.png)

**Note**: *This issue was originally created as [PARQUET-2069](https://issues.apache.org/jira/browse/PARQUET-2069). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia confrontando i file allegati original.parquet e modified.parquet, quindi traccia la conversione dello schema Avro utilizzata quando Parquet-MR legge e riscrive array annidati. Riproduci la ClassCastException durante la lettura del file riscritto; il lavoro è completato quando lo schema rimane compatibile e l'output può essere letto nuovamente da Parquet-MR.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
data-engineering
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.