apache / apache/parquet-java

Add an option to allow auto conversion from empty fields to NULL

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

Descrizione

Right now, Parquet Writer throws out an exception:

`Parquet record is malformed: empty fields are illegal, the field should be ommited completely instead`

when an empty field (array or struct or map I guess?) is written.

The suggestion here is to add an option "auto_convert_empty_fields_to_null" that convert empty fields to null automatically on write.

The LOC to change is [here:](https://sourcegraph.com/github.com/apache/parquet-mr/-/blob/parquet-column/src/main/java/org/apache/parquet/io/MessageColumnIO.java#L328)
> `if (emptyField) {`
> ` {{   throw new ParquetEncodingException("empty fields are illegal, the field should be ommited completely instead");`}}
> ``}
 

**Reporter**: [Zheng Shao](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=zshao)

**Note**: *This issue was originally created as [PARQUET-1945](https://issues.apache.org/jira/browse/PARQUET-1945). 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 in parquet-column/src/main/java/org/apache/parquet/io/MessageColumnIO.java, intorno al blocco `if (emptyField)` alla riga 328, quindi traccia il percorso con cui le opzioni di Parquet Writer raggiungono questo codice. Definisci dove deve trovarsi l’opzione `auto_convert_empty_fields_to_null` e verifica che gli array, gli struct o le map vuoti vengano scritti come null invece di generare l’eccezione per record malformato; l’issue non indica alcun file di test.

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

Valutazione

Stack tecnologico
java
Ambito
data
Tipo di issue
Funzionalità
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.