Apache Parquet
Hacker ApprovedThe most recommended of 5 file formats
Widely supported columnar file format that compresses well and lets tools read only needed columns. Critics say it is hard to append to and has heavy dependencies.
Widely supported columnar file format that compresses well and lets tools read only needed columns. Critics say it is hard to append to and has heavy dependencies.
57 people gave an opinion
- recommend it
- 40
- criticize it
- 17
- approval share
- 70%
Recommended in 12 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Why it carries the badge
- 40 people recommend itNeeds 10 or more, met.
- 2.4 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 12 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Columnar layout compresses well
“I can get the zstd parquet to be up to 10x (or more) smaller than an equivalent Postgres table”
Comment from 19 Jun 2026 in “DuckDB Internals: Why Is DuckDB Fast? (Part 1)” “with their built-in columnar compression will result in more performance AND space savings”
Comment from 7 Sep 2026 in “bzip3” “You’ll see vastly smaller file sizes (even more so if you use zstd compression)”
Comment from 19 Jun 2026 in “DuckDB Internals: Why Is DuckDB Fast? (Part 1)” - Comment from 7 May 2026 in “SQLite Is a Library of Congress Recommended Storage Format”
- Comment from 13 Aug 2026 in “Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes”
- Comment from 19 Mar 2026 in “Show HN: Hacker News archive (47M+ items, 11.6GB) as Parquet, updated every 5m”
- Comment from 6 Jan 2026 on Hacker News
- Comment from 20 Nov 2025 in “Vortex: An extensible, state of the art columnar file format”
Reads only the columns needed
“not only do you get seekable data, you can fetch only the columns you want too”
Comment from 31 Dec 2025 in “Show HN: Hacker Book – All the HN Belong to You 2006 – 2025” “DuckDB can do all manner of nifty optimizations while reading its own native format or Parquet”
Comment from 23 Jun 2026 in “F3” Strong support across tools
“parquet has fantastic support and is still a pretty good choice”
Comment from 13 Feb 2026 in “Apache Arrow is 10 years old” “Parquet, Iceberg, and other open formats seem good”
Comment from 31 Dec 2025 in “Readings in Database Systems (5th Edition)” “I think parquet and arrow are great formats”
Comment from 6 Mar 2026 in “Nobody ever got fired for using a struct” - Comment from 4 Jun 2026 in “Learn SQL Once, Use It for 30 Years”
Good for analytics workloads
“if you are just doing pure analytics and nothing else, Parquet will probably continue to do the job for you just fine”
Comment from 23 Jun 2026 in “F3” “Parquet might win for table scans depending on the underlying storage medium”
Comment from 7 Mar 2026 in “Nobody ever got fired for using a struct”
What people warn about
Each mark is one comment
Hard to append or update
“Creating the Parquet data is a pain since it's not append-able”
Comment from 12 Feb 2026 in “Apache Arrow is 10 years old” “but with parquet you need large row group batches. Worst case (low log volumes and a time-based flush) you’d end up with loads of tiny row groups.”
Comment from 13 Aug 2026 in “Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes” “you really want to avoid re-writing all 122880 rows of a row group every time a single insert happens”
Comment from 13 Aug 2026 in “Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes” - Comment from 13 Aug 2026 in “Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes”
Heavy dependency footprint
“The heavy dependency footprint of parquet-java was the main driver for kicking off this project.”
Comment from 1 Mar 2026 in “Hardwood: A New Parser for Apache Parquet” “extremely unpleasant to use with its massive fan-out of dependencies”
Comment from 1 Mar 2026 in “Hardwood: A New Parser for Apache Parquet” “Pulling in Parquet and all of its dependencies is utter overkill.”
Comment from 4 Mar 2026 in “Moldova broke our data pipeline” Does not fix encoding problems
“while Parquet fixes the "delimiter problem", it doesn't fix the "encoding problem"”
Comment from 4 Mar 2026 in “Moldova broke our data pipeline” “A big problem with parquet, which this aims to replace, is that it's hard to add new encodings”
Comment from 23 Jun 2026 in “F3” Not the best at compression
“Parquet is also 13 years old and not the GOAT at compression”
Comment from 7 Oct 2026 in “Show HN: Parseable, an open observability datalake, handles 100M time-series/min” “Plus isn't the least wasteful format”
Comment from 18 Mar 2026 in “Show HN: Hacker News archive (47M+ items, 11.6GB) as Parquet, updated every 5m”
Other file formats people recommend
The four most recommended other file formats, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Apache ParquetThis page | 40 | 17 | 70% | 12 | — | Approved |
| Gwtar | 10 | 7 | 59% | 1 | — | — |
| Safetensors | 7 | 2 | 78% | 4 | — | — |
| JSON Canvas | 7 | 3 | 70% | 2 | — | — |
| F3 file format | 6 | 5 | 55% | 2 | — | — |
What people said
40 of the 64 comments that mention it, newest first. Each links to the original comment.
“Parquet is also 13 years old and not the GOAT at compression”
“it's a great combination for data exploration tools that run in the browser”
“with their built-in columnar compression will result in more performance AND space savings”
“Wouldn't Avro or Parquet be solid choices for something like this”
“An LSM-style layer over Parquet gets all of this fairly naturally”
“but with parquet you need large row group batches. Worst case (low log volumes and a time-based flush) you’d end up with loads of tiny row groups.”
“Columnar, compression, fast, succinct. All good things.”
“you really want to avoid re-writing all 122880 rows of a row group every time a single insert happens”
“Sadly Parquet is useless for the append-only layer.”
“if you are just doing pure analytics and nothing else, Parquet will probably continue to do the job for you just fine”
“my main gripe with parquet (single table per file) is not even addressed”
“DuckDB can do all manner of nifty optimizations while reading its own native format or Parquet”
“a dead-simple, heavily documented byte specification like Parquet”
“A big problem with parquet, which this aims to replace, is that it's hard to add new encodings”
“I can get the zstd parquet to be up to 10x (or more) smaller than an equivalent Postgres table”
“You’ll see vastly smaller file sizes (even more so if you use zstd compression)”
“only compressing the parquets in LZ4 and getting a fuck ton of more space savings”
“parquet really helped with interop”
“It should result in a smaller file size due to columnar compression.”
“there really aren't any good pure Swift libraries for Arrow or Parquet”
“I think this would be pretty straightforward for Parquet with ZSTD compression”
“Just Parquet files + simple partitioning + commits on Hugging Face.”
“I chose Parquet because it is columnar and compressed”
“Plus isn't the least wasteful format”
“Parquet might win for table scans depending on the underlying storage medium”
“I think parquet and arrow are great formats”
“Depending on your needs, the right tool might be Parquet or Arrow or protobuf or Cap’n Proto”
“while Parquet fixes the "delimiter problem", it doesn't fix the "encoding problem"”
“Pulling in Parquet and all of its dependencies is utter overkill.”
“Parquet and Feather can have excellent performance and space efficiency if you use them for their intended purposes”
“The heavy dependency footprint of parquet-java was the main driver for kicking off this project.”
“this is significantly faster than parquet-java for the same task”
“extremely unpleasant to use with its massive fan-out of dependencies”
“parquet has fantastic support and is still a pretty good choice”
“Creating the Parquet data is a pain since it's not append-able”
“Parquet with row groups is fast and compresses well.”
“Parquet, Iceberg, and other open formats seem good”
“not only do you get seekable data, you can fetch only the columns you want too”
“Standard practice is to use formats like WebDataset, Parquet, or TFRecord to chunk small files into large, sequential blobs.”
“compression better with Parquet”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.