Parquet Schema Viewer
Inspect a Parquet file's schema and metadata in your browser: logical and physical types, nullability, nested fields, row groups, compression codecs, sizes and the statistics stored in the footer. Nothing is uploaded.
Open a .parquet file to inspect its schema and metadata, or try the sample file. You can also drop a file here.
Columns
How to view a Parquet schema
- Open the .parquet file, or click Try sample file. The tool opens on the Schema & metadata tab.
- The schema table lists every field with its logical type (for example
DECIMAL(12,2)orTIMESTAMP(MICROS, UTC)), physical type and repetition (REQUIRED, OPTIONAL or REPEATED). Nested lists, structs and maps are indented. - The file section shows the row count, row groups, file size, the writer (
created_by) and key/value metadata such as the embedded Arrow schema. - The column chunk table shows codecs, encodings, compressed and uncompressed sizes, and min, max and null counts.
Stored statistics, not computed ones
Min, max and null counts in this view are the statistics the writer stored in the file footer, combined across row groups. They are not computed by scanning the data, so they can be missing (writers may skip them) and are only as accurate as the writer made them. Opening the schema reads only the footer, so it is fast even for large files.
Step-by-step walkthrough: How to open and inspect a Parquet file without Python or Spark.
How values are shown and exported
- Large integers (INT64/UINT64) keep every digit. In JSON, integers inside ±9,007,199,254,740,991 are numbers; larger ones are strings, because JavaScript numbers cannot hold them exactly.
- Decimals are read from their stored integers and written as exact strings with the column's scale, for example
"12345678901234.5678"— in JSON too. - Timestamps keep full millisecond, microsecond or nanosecond precision as ISO 8601. A
Zis added only when the column is marked as adjusted to UTC; local (no-timezone) timestamps and legacy INT96 timestamps are shown without one and labelled. More in Parquet timestamps explained. - Null, empty and missing are shown differently:
null,"", and missing for a field absent from a struct. In CSV, nulls use the token you choose and empty strings are always written as"", so the two stay distinguishable. - Nested values (lists, structs, maps) stay nested in JSON. In CSV they are written as JSON text in one cell, or left out.
- Binary columns are written as Base64. NaN and Infinity are written as strings in JSON.
Does my Parquet file get uploaded?
No. The file is read in your browser with File.slice(), and decoding runs in a Web Worker on your device. File contents and filter values are not sent in any network request; our browser test suite checks every request made while a file is open. Clearing the file releases the reference to it and stops the worker.
Size limits
The schema view reads only the file footer, so it is not affected by the row-group size limits: large files open quickly. The limits apply when you switch to Rows or Export: one read may decode up to 400 MB and one export may cover up to 250 MB of decoded data, the largest sizes that worked in our single-machine test.
These figures come from one machine and one browser: Apple M4 (Mac16,3, 16 GB RAM), Chromium 145.0.7632.6 (headless), measured on 2026-10-02. They are not a guarantee for your device. The 400 MB and 250 MB guards are fixed, so on a computer or phone with less memory, in another browser, or with many tabs open, a file inside the guards can still run out of memory and close the tab. If that happens, select fewer columns or use DuckDB.
Full measurements for every test file: Parquet Viewer — limits measured for this tool.
Frequently asked questions
How do I see the schema of a Parquet file?
Open the file here; the Schema & metadata tab lists every column with its logical and physical type and nullability. Only the footer is read, so large files open quickly.
What is the difference between logical and physical type?
The physical type is how values are stored (INT32, INT64, BYTE_ARRAY, FIXED_LEN_BYTE_ARRAY…). The logical type says how to read them, such as DECIMAL(12,2) stored as INT64, or a TIMESTAMP in microseconds.
Are the min and max values computed from the data?
No. They are the statistics stored in the file by the writer, combined across row groups. A column without stored statistics shows none.
Can I see which compression each column uses?
Yes. The column chunk table lists the codecs and encodings used by each column across all row groups.
Is the file uploaded?
No. The footer is read from the file in your browser.