Parquet Viewer (Read .parquet Files)

Drop a .parquet file and read it without a database, Python or Spark. The viewer parses the file's footer to show the schema — every column and its type — along with row count, row groups, the compression codec and the writer that produced it, then renders a preview table of the rows. Export what you see as CSV or JSON. It uses the pure-JavaScript hyparquet reader running entirely in your browser, so the file is read locally and never uploaded.

Drop a .parquet file here, or click to choose

Read locally in your browser — nothing is uploaded.

How to use the Parquet Viewer (Read .parquet Files)

Drag a .parquet file onto the box, or click it to pick one. The viewer first reads only the file's footer — the metadata block Parquet stores at the end — so it can show the schema and statistics quickly without decoding the whole file. You'll see the total row count, the number of columns and their types, how many row groups the file is split into, which compression codec was used, the file size, and the created_by string identifying the writer (pandas, PyArrow, Spark, DuckDB and so on).

It then decodes and displays the first 200 rows in a scrollable table — enough to understand the data's shape without loading a multi-gigabyte file into memory. Null values show as ∅, and nested values (lists and structs) are shown as compact JSON. Use Download preview CSV or Download preview JSON to export exactly the rows shown for use elsewhere. Reading happens client-side via the hyparquet library; Snappy, Gzip, Zstd and uncompressed columns are supported, while the rarer LZ4 and Brotli codecs are not, in which case the viewer reports the unsupported codec rather than showing wrong data.

Apache Parquet and why a viewer is handy

Apache Parquet is the de-facto columnar storage format for analytics. Instead of storing data row by row like CSV, it stores each column together, which makes it far smaller (similar values compress well) and far faster to query when you only need a few columns out of many. It is the native format of the modern data stack — pandas, PyArrow, Spark, DuckDB, Snowflake, BigQuery exports, Delta Lake and Iceberg all read and write it. The catch for everyday work is that Parquet is a binary format: you cannot just open a .parquet file in a text editor to see what's inside, the way you can with CSV or JSON. Answering a simple question — what columns are in this file, what types, how many rows — usually means firing up Python or a database.

A Parquet file is more structured than it looks. The actual data lives in one or more row groups, each holding a chunk of rows split into column chunks, and each column chunk is encoded and compressed independently. At the very end of the file sits the footer: a Thrift-encoded metadata structure describing the schema, the row groups, per-column statistics, and the codec used. Because the schema and counts live in that footer, a reader can describe a file — even a huge one — by fetching just the last few kilobytes, which is exactly what this tool does before deciding how much to decode.

This viewer exists so you can answer those quick questions in the browser, with no install and no upload. It reads the footer to present the schema and statistics, then decodes a bounded preview of rows so you can eyeball the actual values. It runs on hyparquet, a dependency-free JavaScript Parquet reader, which means the file never leaves your machine — useful when the data is sensitive or simply too awkward to move. For deeper work you'll still reach for DuckDB or pandas, but for "what's in this file?" a viewer is the fastest path, and a safe one.

Common use cases

  • Inspect an unfamiliar file. See the schema, column types and row count of a .parquet someone handed you, without writing any code.
  • Sanity-check an export. Confirm a pandas, Spark or DuckDB job wrote the columns, types and row count you expected.
  • Peek at sensitive data. Read the file locally in the browser when uploading it to a converter or notebook would be a privacy concern.
  • Grab a sample. Export the first rows as CSV or JSON to paste into a ticket, test fixture or spreadsheet.

Frequently asked questions

Is my file uploaded anywhere?

No. The file is read entirely in your browser by the hyparquet JavaScript library — it is parsed from a local File object via the File API, and no bytes are sent to any server. You can confirm this in your browser's Network tab; loading a file produces no requests. That makes it safe for confidential data.

How many rows does it show?

The metadata panel reports the true total row count from the file footer, and the preview table decodes and displays the first 200 rows. This keeps memory and time bounded so the viewer stays responsive even on large files, while still letting you see real values and the exact schema.

Which compression codecs are supported?

Snappy (by far the most common), Gzip, Zstd and uncompressed columns are read correctly. The rarer LZ4 and Brotli codecs are not supported by the underlying reader; if a file uses one, the viewer tells you the codec is unsupported rather than displaying incorrect data.

Can it read very large files?

It reads the footer using small ranged reads, so it can describe the schema and counts of a large file quickly. The row preview is capped at 200 rows, which bounds how much data is decoded. Whole-file operations on multi-gigabyte data are still better suited to DuckDB or pandas.

Does it handle nested columns?

Yes — lists and structs are read and shown as compact JSON inside their cell, and the schema table marks group (nested) nodes. Deeply nested data is easier to explore in a dedicated query engine, but the preview lets you see the structure at a glance.