apache / apache/parquet-java

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

オープン
#3,307 コメント 6 件 リアクション 0 件 担当者 0 名 GitHub で見る
Type: bug
主要言語
Java
スター
3.1k
フォーク
1.6k
平均マージ
3日 12時間
マージ済み PR(30日)
33

説明

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.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず DevNullValuesWriter を見つけてその getEncoding() の実装を調べ、次にその値が列メタデータと DataPageHeader にどのように到達するかを追跡します。空の反復レベルと定義レベルによって、非推奨の BIT_PACKED エンコーディングが生成されず、代わりに RLE が使用されることを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
data-engineering
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。