apache / apache/parquet-java

Is big Decimal in Parquet big endian?

未关闭
#3,246 4 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
3.1k
派生
1.6k
平均合并
3 天 12 小时
30 天内合并 PR
33

描述

### Describe the usage question you have. Please include as many useful details as possible.

It's not clear from description https://parquet.apache.org/docs/file-format/data-pages/encodings/ how are big Decimals (precision >= 18) placed. As I could understand they can be encoded as BYTE_ARRAY or FIXED_LEN_BYTE_ARRAY. But there're two ways to place "the bytes contained in the array" from memory: big endian and little endian. I.e. they are in LE in int128 in memory. Could I place the bytes into FIXED_LEN_BYTE_ARRAY as is?

It's also not clean if there's some encoding over these decimal's bytes, should the data be swapped to correct endianness before of after the encoding?

### Component(s)

_No response_

贡献指南

这个仓库没有索引到贡献指南

调研方向

从 issue 中链接的 Parquet 数据页编码文档开始,验证 BYTE_ARRAY 和 FIXED_LEN_BYTE_ARRAY 十进制值的字节序和编码规则。完成标准是记录大十进制数使用 big-endian 还是 little-endian 字节,以及何时会进行编码或字节交换。

由索引模型根据 Issue 内容生成。

评估

领域
data-engineering
Issue 类型
文档
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。