Parquet Viewer
Inspect Apache Parquet file metadata — schema, row groups, compression, and more
Click to upload or drag and drop a .parquet file
All processing is local — file never leaves your device
Quick Example
File Metadata
Upload a .parquet file to inspect its metadata
Version
-
Schema Fields
0
Row Groups
0
Total Rows
0
What Is Apache Parquet?
Apache Parquet is a free and open-source, column-oriented data storage format built for analytics. Instead of storing rows one after another, it stores each column together, which lets a reader load only the columns a query actually needs and compress each column with the algorithm that suits its data best.
A Parquet file is split into row groups, and each row group holds a column chunk per column. All of the descriptive information — the schema, the row-group layout, the compression codec, and the encodings — lives in a footer at the end of the file. That footer is what makes Parquet self-describing and what this viewer reads.
Because the format uses efficient compression and encoding schemes such as dictionary, run-length, and delta encoding, Parquet files are typically far smaller than the equivalent CSV. This makes the format ideal for big-data processing in Hadoop, Spark, DuckDB, and similar engines, and it is a common output for data lakes and warehouse exports.
This viewer parses the file footer entirely in your browser using the Thrift Compact Protocol. It does not upload your file and it does not need a server backend, so you can inspect a Parquet file — including its version, schema, row groups, compression, encodings, and key-value metadata — without installing anything.
The tool reports a summary of the file (version, number of schema fields, row groups, and total rows) along with a readable text dump of the full metadata. If the file is not a valid Parquet file or the footer cannot be parsed, a clear error message is shown instead of a partial result.
Key Concepts
- Column-oriented storage — values are grouped by column rather than by row for better compression and selective reads.
- Row groups — horizontal partitions of the file, each holding a chunk of every column.
- Schema — the field names, physical types, repetition levels, and logical annotations.
- Footer metadata — the self-describing trailer at the end of the file that the viewer parses.
- Compression codecs — the algorithm used per column, such as Snappy, Gzip, or ZSTD.
- Key-value metadata — arbitrary string pairs written by the producing tool, such as Spark version or partition flags.
How to Use
- Select a .parquet file — Click the upload area to browse or drag and drop a file onto the drop zone.
- Let the footer parse locally — The tool reads the file footer with the Thrift Compact Protocol; nothing is uploaded.
- Read the file summary — Check the version, schema field count, row-group count, and total rows.
- Inspect the metadata output — Review the schema, per-column compression and encodings, and key-value metadata.
- Copy or clear — Copy the metadata text, load the built-in sample, or clear the viewer to start over.
Parquet Metadata Reference
The viewer reads the file footer and reports the following pieces of metadata.
| Field | Description |
|---|---|
| Version | The Parquet format version declared in the file metadata. |
| Created By | The library and version that wrote the file, such as parquet-mr or Spark. |
| Schema | Field names with their physical type, repetition level, and logical annotation. |
| Row Groups | Number of horizontal partitions and the row count and size of each. |
| Column Chunks | Per-column type, codec, value count, and compressed versus raw size. |
| Compression | The codec applied to each column chunk. |
| Encodings | The value encodings used, such as PLAIN, RLE, or RLE_DICTIONARY. |
| Key-Value Metadata | Custom string pairs written by the producing tool. |
Common compression codecs and encodings that can appear in a file.
| Name | Kind | Notes |
|---|---|---|
| UNCOMPRESSED | Codec | No compression; rarely used in production files. |
| SNAPPY | Codec | Fast and the most common default for Parquet. |
| GZIP | Codec | Smaller files but slower to decompress. |
| ZSTD | Codec | Excellent ratio with good speed; popular in modern warehouses. |
| PLAIN | Encoding | Values stored without encoding. |
| RLE_DICTIONARY | Encoding | Dictionary encoding for low-cardinality columns. |
| DELTA_BINARY_PACKED | Encoding | Delta encoding for integers and timestamps. |
Worked Examples
- Employee sample — the built-in sample reports version 2, six schema fields, two row groups, and 1,000,000 total rows.
- Snappy columns — every column chunk in the sample is compressed with SNAPPY and lists encoding 0 (PLAIN) and 7 (RLE_DICTIONARY).
- Compression ratio — a column chunk shown as
raw: 7.6 MB → comp: 3.3 MBindicates the codec roughly halved the bytes. - String fields — the
nameandemailfields appear as BYTE_ARRAY with a UTF8 converted type. - Spark provenance — key-value metadata shows
org.apache.spark.version: 3.5.0, revealing the writer. - Invalid file — dropping a non-Parquet file produces a clear "missing PAR1 header" error instead of an empty result.
Tips and Common Mistakes
- Metadata, not data — this tool inspects the footer; use a Parquet reader such as Arrow or DuckDB to see the rows themselves.
- Confirm the extension — the drop zone only accepts
.parquetfiles, so rename badly-labelled exports first. - Check the row-group count — very large files often use many row groups; the count hints at how the writer tuned it.
- Compare compressed versus raw — the per-column sizes show which columns compress well and which do not.
- Read the codec per column — a single file can mix codecs, so do not assume the first column represents the whole file.
- Keep files local — parsing happens in the browser, so confidential data stays on your machine.
Common Use Cases
Parquet is the default storage format in most modern data platforms, so being able to read a file's footer without a full environment is genuinely useful. These are the most common scenarios.
- Schema debugging — check column names, types, and logical annotations when a query returns unexpected results.
- Pipeline validation — confirm a file produced by Spark or a warehouse export has the row groups and row count you expect.
- Compression auditing — see which codec was used and how much space each column chunk really occupies.
- Provenance checks — read the Created By field and key-value metadata to identify the writer and its version.
- Data-lake triage — quickly inspect a downloaded part file before loading it into a notebook.
- Learning the format — explore how row groups, encodings, and metadata fit together on a real file.
Frequently Asked Questions
Is my data sent to a server?
No. All processing is performed locally in your browser. Your Parquet file never leaves your device.
What is a Parquet file?
Apache Parquet is a columnar storage format designed for big data processing. It offers efficient compression and encoding schemes, making it ideal for analytics workloads in Hadoop, Spark, and other data processing frameworks.
What metadata can I see?
The viewer displays the file version, schema fields (column names and types), row group information (row count, compressed/uncompressed sizes), compression codecs, encodings, and key-value metadata.
Can I view the actual data?
This tool focuses on metadata inspection. Use a dedicated Parquet reader like Apache Arrow or a data analysis tool to view the actual row data.
How does the viewer read the file without uploading it?
It parses the file footer in the browser using the Thrift Compact Protocol. The footer contains all the metadata, so no server and no upload are required.
Why do I get a PAR1 error?
Parquet files begin and end with the magic bytes PAR1. If those bytes are missing, the file is not a valid Parquet file or the download is incomplete.
Does the viewer show row data?
No. It reads metadata only, including schema, row groups, compression, encodings, and key-value pairs. Row values require a full Parquet reader.
Is this tool free to use?
Yes. This tool is completely free with no usage limits or registration required.