parquet-cli cannot display data containing int96 type
- 主要语言
- Java
- 星标
- 3.1k
- 派生
- 1.6k
- 平均合并
- 3 天 12 小时
- 30 天内合并 PR
- 33
描述
### Describe the bug, including details regarding any error messages, version, and platform.
parquet-cli cannot display the contents of a Parquet file containing int96 types.
```shell
parquet cat part-00000-e4f30ffc-fdfa-465d-8205-23562b26616f-c000.zstd.parquet
Argument error: INT96 is deprecated. As interim enable READ_INT96_AS_FIXED flag to read as byte array.
```
After adding the parameter `parquet.avro.readInt96AsFixed=true`, reading will still fail due to schema mismatch.
```shell
parquet -Dparquet.avro.readInt96AsFixed=true cat ~/Downloads/part-00000-e4f30ffc-fdfa-465d-8205-23562b26616f-c000.zstd.parquet
Unknown error
java.lang.RuntimeException: Failed on record 0 in file /Users/admin/Downloads/part-00000-e4f30ffc-fdfa-465d-8205-23562b26616f-c000.zstd.parquet
at org.apache.parquet.cli.commands.CatCommand.runWithAvroSchema(CatCommand.java:101)
at org.apache.parquet.cli.commands.CatCommand.run(CatCommand.java:67)
at org.apache.parquet.cli.Main.run(Main.java:217)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
at org.apache.parquet.cli.Main.main(Main.java:245)
Caused by: org.apache.parquet.io.ParquetDecodingException: Can not read value at 0 in block -1 in file file:/Users/admin/Downloads/part-00000-e4f30ffc-fdfa-465d-8205-23562b26616f-c000.zstd.parquet
at org.apache.parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:280)
at org.apache.parquet.hadoop.ParquetReader.read(ParquetReader.java:136)
at org.apache.parquet.hadoop.ParquetReader.read(ParquetReader.java:140)
at org.apache.parquet.cli.BaseCommand$2$1.advance(BaseCommand.java:505)
at org.apache.parquet.cli.BaseCommand$2$1.(BaseCommand.java:486)
at org.apache.parquet.cli.BaseCommand$2.iterator(BaseCommand.java:484)
at org.apache.parquet.cli.commands.CatCommand.runWithAvroSchema(CatCommand.java:88)
... 4 more
Caused by: org.apache.parquet.io.ParquetDecodingException: The requested schema is not compatible with the file schema. incompatible types: required fixed_len_byte_array(12) timestamp_col != required int96 timestamp_col
at org.apache.parquet.io.ColumnIOFactory$ColumnIOCreatorVisitor.incompatibleSchema(ColumnIOFactory.java:104)
at org.apache.parquet.io.ColumnIOFactory$ColumnIOCreatorVisitor.visit(ColumnIOFactory.java:95)
at org.apache.parquet.schema.PrimitiveType.accept(PrimitiveType.java:693)
at org.apache.parquet.io.ColumnIOFactory$ColumnIOCreatorVisitor.visitChildren(ColumnIOFactory.java:83)
at org.apache.parquet.io.ColumnIOFactory$ColumnIOCreatorVisitor.visit(ColumnIOFactory.java:57)
at org.apache.parquet.schema.MessageType.accept(MessageType.java:52)
at org.apache.parquet.io.ColumnIOFactory.getColumnIO(ColumnIOFactory.java:167)
at org.apache.parquet.hadoop.InternalParquetRecordReader.checkRead(InternalParquetRecordReader.java:155)
at org.apache.parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:245)
... 10 more
```
### Component(s)
CLI
贡献指南
这个仓库没有索引到贡献指南
调研方向
Reproduce the failure with parquet-cli cat on a Parquet file containing an INT96 column and review the stack trace through parquet.cli.commands.CatCommand.runWithAvroSchema and CatCommand.run. Trace how the file schema is converted for reading; done means parquet-cli can display records containing INT96 without the schema mismatch or decoding error.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- cli, data
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 48/100