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.
Related tools
- SQLite Viewer opens database files and runs SQL on them.
- JSON Lines Converter handles line-delimited exports from logs and BigQuery.
- CSV to JSON converts the exported CSV for web apps.
- Excel to CSV covers the reverse trip from spreadsheets.
Checked against the current version of the Parquet Viewer on .

