apache / apache/parquet-java

Delta Encoding is not used when dictionary enabled

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

Descrizione

Current code doesn't enable using both Delta Encoding and Dictionary Encoding. If I instantiate ParquetWriter like this :
```Java
val writer = new ParquetWriter[Group](outFile, new GroupWriteSupport, codec, blockSize, pageSize, dictPageSize, enableDictionary = true, true, ParquetProperties.WriterVersion.PARQUET_2_0, configuration)
```

Then this piece of code :
https://github.com/apache/parquet-mr/blob/master/parquet-column/src/main/java/org/apache/parquet/column/values/factory/DefaultValuesWriterFactory.java#L78-L86

Causes that DictionaryValuesWriter is used instead of the inferred DeltaLongEncodingWriter.

The original issue is here : https://github.com/apache/parquet-mr/pull/154#issuecomment-266489768

**Reporter**: [Jakub Liska](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=l154k)

**Note**: *This issue was originally created as [PARQUET-796](https://issues.apache.org/jira/browse/PARQUET-796). 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

Iniziare da parquet-column/src/main/java/org/apache/parquet/column/values/factory/DefaultValuesWriterFactory.java alle righe 78-86, quindi seguire come viene selezionato DictionaryValuesWriter invece del DeltaLongEncodingWriter dedotto. Riprodurre la configurazione di ParquetWriter dell’issue e aggiungere una copertura che mostri il comportamento di encoding previsto quando il dictionary encoding è abilitato.

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.