apache / apache/arrow-rs

Coerce parquet int96 timestamps to microsecond precision

Open
#5,655 7 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
3.6k
Forks
1.3k
Avg merge
2d 14h
Merged PRs (30d)
167

Description

**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
Spark annoyingly by default writes the deprecated int96 timestamps even though it's microsecond precision in the source.

Arrow-rs coerces this as nanosecond precision during reads. Pyarrow does this as well, however in their parquet reader you can enable a flag that coerces the int96 timestamps from nanosecond to microsecond.

**Describe the solution you'd like**
Add an option to the parquet reader to handle this coercion to microsecond precision for int96 timestamps

**Describe alternatives you've considered**

**Additional context**

This would help in delta-rs with reading spark created parquet tables, and prevent schema mismatches

Contributor guide

Open the contributing guide

Research direction

Start at the parquet reader entry point that handles INT96 timestamps and compare the requested behavior with PyArrow's coercion option. Done means the reader exposes an option that coerces INT96 values to microsecond precision, supporting Spark-created tables without schema mismatches in delta-rs.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
data-engineering
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.