nanoparquet
R package to read and write Parquet files. Contribute to r-lib/nanoparquet development by creating an account on GitHub.
nanoparquet is chasing byte-level agreement with the Java and Rust Parquet readers, not feature count.
◆Recent moves
- 3mo ago
64-bit integer columns and writing Parquet to stdout
Two additions that widen where nanoparquet fits. `bit64::integer64` columns now round-trip as INT64 with a `read_int64_type` option to control the read side, closing a precision gap that the default double conversion left open. Writing to `:stdout:` makes a one-line `Rscript` invocation into a shell-pipeline Parquet writer.
View source ↗ - 4mo ago
Files now readable by the Java and Rust Parquet libraries
The clearest statement of the current priority: data page headers now set RLE level encodings for the Apache Parquet Java library, and ARROW:schema metadata gets correct flatbuffer alignment for the Rust arrow-rs reader. Files nanoparquet wrote were previously being rejected downstream — that is a worse failure than a missing feature, and this release closes both cases.
View source ↗ - 1y ago
Reads Polars files that omit the dictionary page offset
Another writer-specific accommodation — Polars produces files without the dictionary page offset in their metadata, and nanoparquet now handles them. Small in diff, but it extends the set of real-world files the reader accepts, which is the axis this package competes on.
View source ↗ - 1y ago
Date, FLOAT, and mixed-encoding read fixes
A pure bug-fix release covering double `Date` column conversion, FLOAT columns spanning multiple row groups, and column chunks that mix dictionary-encoded and plain pages. Narrow edge cases rather than a change in what the package can do.
View source ↗ - 1y ago
Schema authoring and append_parquet arrive with a renamed API
⚡ SPARKThe release that turned a reader with a writer attached into a full Parquet toolkit. Schema construction from scratch means users control type mapping instead of accepting inference, and `append_parquet()` makes existing files extendable. The coordinated `read_*` rename set the naming convention every release since has followed.
View source ↗ - 1y ago
Fixes a write_parquet crash
A single-issue patch release fixing a crash in `write_parquet()`. No user-visible change beyond the failure no longer happening.
View source ↗