apache / apache/parquet-java

BIT_PACKING is written by default when Definition or Repetition levels are empty

Offen
#3,307 6 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Type: bug
Vorherrschende Sprache
Java
Sterne
3.1k
Forks
1.6k
Ø Merge
3 T. 12 Std.
Gemergte PRs (30 T.)
33

Beschreibung

As discussed in https://github.com/apache/arrow/discussions/47113 , this package is writing the deprecated BIT_PACKING encoding to the column metadata and the DataPageHeader. This is only seems to happens when rep/def levels are empty. I think this is where it's happening:

```java
public class DevNullValuesWriter extends ValuesWriter {
....
public Encoding getEncoding() {
return BIT_PACKED;
}
}
```

Wouldn't it make sense to just return RLE?

I've seen this in parquet-java 1.15.1 and Overture Maps files using 1.13.1.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne damit, DevNullValuesWriter zu finden und seine getEncoding()-Implementierung zu untersuchen; verfolge dann, wie dieser Wert die Spaltenmetadaten und den DataPageHeader erreicht. Bestätige, dass leere Wiederholungs- und Definitionslevel nicht mehr die veraltete BIT_PACKED-Kodierung erzeugen, sondern stattdessen RLE verwenden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
data-engineering
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.