Cannot read parquet file that was generated from nanoparquet
- 主要言語
- Java
- スター
- 3.1k
- フォーク
- 1.6k
- 平均マージ
- 3日 12時間
- マージ済み PR(30日)
- 33
説明
### Describe the bug, including details regarding any error messages, version, and platform.
When trying to use `MessageColumnIO` to get a record reader, the following error occurs:
```
Exception in thread "main" java.lang.UnsupportedOperationException
at org.apache.parquet.column.values.ValuesReader.readInteger(ValuesReader.java:178)
at org.apache.parquet.column.impl.ColumnReaderBase$ValuesReaderIntIterator.nextInt(ColumnReaderBase.java:830)
at org.apache.parquet.column.impl.ColumnReaderBase.checkRead(ColumnReaderBase.java:663)
at org.apache.parquet.column.impl.ColumnReaderBase.consume(ColumnReaderBase.java:801)
at org.apache.parquet.column.impl.ColumnReaderImpl.consume(ColumnReaderImpl.java:30)
at org.apache.parquet.column.impl.ColumnReaderImpl.(ColumnReaderImpl.java:43)
at org.apache.parquet.column.impl.ColumnReadStoreImpl.getColumnReader(ColumnReadStoreImpl.java:80)
at org.apache.parquet.io.RecordReaderImplementation.(RecordReaderImplementation.java:282)
at org.apache.parquet.io.MessageColumnIO$1.visit(MessageColumnIO.java:141)
at org.apache.parquet.io.MessageColumnIO$1.visit(MessageColumnIO.java:105)
at org.apache.parquet.filter2.compat.FilterCompat$NoOpFilter.accept(FilterCompat.java:180)
at org.apache.parquet.io.MessageColumnIO.getRecordReader(MessageColumnIO.java:105)
```
I expected that this would work. Pyarrow for example can read the file.
Sample file can be found here:
[mtcars_np.zip](https://github.com/user-attachments/files/17649331/mtcars_np.zip)
Nanoparquet can be found here:
https://github.com/r-lib/nanoparquet
Version: 1.14.3
Platform: Linux
### Component(s)
Core
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
org.apache.parquet.column.values.ValuesReader.readInteger のスタックトレースと ColumnReaderBase の整数読み取りパスから始め、リンクされた mtcars_np.zip ファイルを再現ケースとして使用します。ファイルのエンコーディングメタデータを調べ、parquet-java 1.14.3 が想定するものと比較します。完了条件は、MessageColumnIO が nanoparquet で生成されたファイルを UnsupportedOperationException なしで読み取れることです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- data-engineering
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100