apache / apache/parquet-java

Is big Decimal in Parquet big endian?

Open
#3,246 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
3.1k
Forks
1.6k
Avg merge
3d 12h
Merged PRs (30d)
33

Description

### 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_

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the Parquet data-pages encodings documentation linked in the issue and verify the byte order and encoding rules for BYTE_ARRAY and FIXED_LEN_BYTE_ARRAY decimal values. Done means documenting whether big decimals use big-endian or little-endian bytes and when any encoding or byte swapping occurs.

Written by the indexing model from the issue text.

Assessment

Domain
data-engineering
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.