1. Home
  2. Developer tools
  3. Parquet Viewer

Parquet Viewer

Check what is inside a Parquet export from Spark, pandas, DuckDB or BigQuery before loading it anywhere, or turn it into a CSV someone can open in Excel.

Free, no sign-up. Runs in your browser: nothing is uploaded.

How to use Parquet Viewer

  1. Drop a .parquet file.
  2. Read the schema, codecs and sizes, then page through the rows.
  3. Download all rows as CSV if you need them elsewhere.

Features

  • Schema with logical types, nullability and codec per column
  • Compressed size and compression ratio per column
  • Snappy, Gzip, Zstd, Brotli and LZ4 decoding
  • Rows read 200 at a time with Previous/Next
  • Key-value metadata such as the pandas or Spark schema

Supported formats

Input

  • PARQUET

You get

  • CSV

Private by design

Everything you enter is processed by your browser on this device. Nothing is sent to openWorkstand or anyone else, so the Parquet Viewer is safe for private and work data. After you have used it once while online, it also works without an internet connection. How local processing works

Good to know

  • The file must fit in memory.
  • Apache Arrow IPC and Feather files are a different format and are not read.

Guide

Reading Parquet files: schema, compression and rows

Apache Parquet is the default file format of data lakes and analytics tools: Spark, pandas, Polars, DuckDB, BigQuery and Snowflake all read and write it. It is compact and fast, but it is binary, so you cannot open it in a text editor or Excel to check what an export contains. This viewer reads the file in your browser, shows its structure and lets you page through the data or turn it into a CSV.

How Parquet is organised

A Parquet file stores a table column by column. Rows are split into row groups, and inside each row group every column is a separate chunk, compressed and encoded on its own. A footer at the end of the file holds the schema, the row count, the position of every chunk and statistics such as minimum and maximum values. The viewer reads that footer first, which is why the schema appears almost instantly even for large files.

The schema table

Each column is listed with its type, whether it may contain nulls, the compression codec, the bytes it occupies on disk and its compression ratio. The type shown is the logical type when the writer recorded one, such as STRING, TIMESTAMP with its unit, DECIMAL or DATE, and otherwise the physical type such as INT64 or DOUBLE. The ratio compares uncompressed and stored sizes and quickly shows which columns dominate the file.

Paging through rows and exporting

Rows are decoded 200 at a time; Previous and Next move through the file without loading everything into the table. Nulls are shown in italics, timestamps as ISO 8601 in UTC, and 64-bit integers as exact numbers rather than rounded floating-point values. “Download all rows as CSV” decodes the whole file and writes a CSV with the column names as the first line, ready for Excel or Google Sheets.

A worked example

The Sample button loads a small orders file with 120 rows and seven columns: order_id, ordered_at, city, product, quantity, unit_price and paid. The first row is order 1001, placed at 2026-09-01T09:00:00.000Z in Lisbon, for one desk lamp at 9.5, not yet paid. The CSV download contains 121 lines, the header plus 120 rows, and its first data line reads 1001,2026-09-01T09:00:00.000Z,Lisbon,Desk lamp,1,9.5,false.

Compression codecs

Writers choose a codec per column chunk. Snappy is the common default in Spark and pandas, Zstd gives smaller files at similar speed, and Gzip, Brotli and LZ4 also appear. All of these are decoded in the page. Encodings such as dictionary and delta encoding are handled automatically as part of reading.

Limits

The whole file is read into memory, so very large files can exhaust a phone or a small laptop. Nested columns such as lists and structs are shown as JSON in a single cell rather than expanded. Arrow IPC and Feather files are a different format and cannot be opened here.

Checking an export before you load it

Most problems with Parquet files show up in the schema: a timestamp written as a plain INT64 without a logical type, money stored as DOUBLE instead of DECIMAL, or an identifier that became nullable because one source row was empty. Comparing the type and nullable columns with what the destination table expects catches these before a load job fails halfway. The key-value metadata at the bottom often includes the writer’s own schema, such as the pandas or Spark description, which tells you how the file was produced.

Checked against the current version of the Parquet Viewer on .

Troubleshooting

The download did not start

Look for your browser’s download bar or icon. Some browsers ask once before a site may download files; allow it and click the button again.

Frequently asked questions

What is a row group?

A horizontal slice of the table, typically tens of thousands to millions of rows, stored column by column. Readers can skip whole row groups using the minimum and maximum statistics in the footer, which is why filters on sorted columns are so fast in Parquet.

Why is the CSV much larger than the Parquet file?

Parquet compresses each column separately and uses dictionary and run-length encoding, so repeated values such as city names cost almost nothing. CSV writes every value out in full as text, so a file several times larger is normal.

Why are some numbers shown without decimals or as large integers?

INT64 values are read as exact big integers so nothing is rounded. Decimal columns stored as integers with a scale are shown as stored; check the schema’s logical type for the scale.

How large a file can it open?

The whole file is loaded into memory, so files of a few hundred megabytes work on a typical laptop. Rows are decoded one page at a time, which keeps the table fast.

Keep working with the result

After you download, choose “Save to Workstand” to keep the result in a folder on your computer, attach it to a project and create a follow-up task. It is saved by your browser, not uploaded.