Parquet Explorer
Open a local Parquet file, inspect its schema and row groups, and browse selected columns in a virtualized table.
Your inputs and files stay in your browser
Drop a Parquet file here
Drop a Parquet file here
One .parquet file. It stays on this device.
The footer, selected columns and export are read in a Web Worker. File contents and schema are never uploaded or saved.
Choose a Parquet file to see its schema, row groups and a virtualized column preview.
Schema
Row groups
File metadata
Only the first metadata pairs are shown.
Visible and exported columns
Selected row
Select a table row to inspect longer cell values.
The on-screen value is shortened. The export keeps values up to the cell limit.
Export selected columns
Recommended: prefixes cells that could execute as =, +, - or @ formulas when opened in a spreadsheet.
Formula protection is off. Exported CSV preserves raw values but may be unsafe to open in spreadsheet software.
Export reads every row of the selected columns. Browsers must still hold the finished download; output is limited to 512 MiB.
A selected column chunk is decompressed as a whole. Nested values become JSON. INT64 values keep their decimal spelling. Uncompressed, Snappy, gzip, Brotli, Zstd, LZ4 and LZ4_RAW are supported. LZO is not. There is no SQL filter, sort or Parquet writer here.
On this page
Parquet Explorer opens an Apache Parquet file entirely in your browser. It reads the footer for the schema and row-group statistics, then decodes only the columns you ask to see, so a wide or tall file does not have to become one HTML table.
Detailed Functionality
The file stays on this device. A Web Worker reads the PAR1 footer through file slices, then lists top-level columns, physical and logical types, repetition and the compression codec of each column. Row groups show their row counts and compressed sizes. The table is virtualized: scrolling requests a small window of rows for the checked columns only.
INT64 and other integers that do not fit in a JavaScript number keep their decimal digits. Timestamps become UTC ISO-8601 text. Binary cells are shown as lowercase hex. Nested structs and lists are JSON. Duplicate column names receive a numeric suffix so JSONL keys stay unique.
CSV and JSONL downloads scan every row of the selected columns, not only the rows on screen. Spreadsheet formula protection is on by default for CSV. Output stops at 512 MiB. Supported codecs are uncompressed, Snappy, gzip, Brotli, Zstd, LZ4 and LZ4_RAW. LZO pages cannot be decoded. The tool does not filter, sort, aggregate or write Parquet.
Practical Examples
Flat columns: a file with name (string) and id (INT64) opens with both columns checked. An id such as 9007199254740993 stays that exact decimal in the table, in CSV and in JSONL.
Column projection: clear Select all, check only name, and scroll. Other column chunks are not decoded for that view. The export contains only the checked columns.
Several row groups: the row-group list shows each group's row count and codec. The table still reads across groups as one row sequence.
Formula-shaped text: a string value =1+1 is exported to CSV as '=1+1 while formula protection is on. JSONL keeps the original string.
How to Use This Tool
Open a local file
Drop or choose one
.parquetfile. The footer read reports bytes, speed and elapsed time. Cancel and choose the file again to start over.Read the schema
Check column types, repetition and compression, then the row-group sizes. File metadata pairs from the footer are listed when the file has them.
Browse columns
Uncheck columns you do not need. Scroll the virtual table and select a row to read longer cell values.
Export
Choose CSV or JSONL. Keep formula protection on for CSV unless you need the raw leading characters. Download writes every row of the checked columns, up to 512 MiB.
Tips and Best Practices
- Only the checked columns are decoded for the current table and for the download. Leave large binary columns unchecked when you only need the keys.
- A column chunk is still decompressed as a whole, so one huge value can use a lot of memory even though the rest of the file is sliced.
- JSONL writes integers that do not fit in a safe JavaScript number as decimal strings, not as rounded numbers.
- More than 512 top-level columns is rejected. The first 500 row groups are listed; the summary count includes the rest.
- LZO compression is not supported. Uncompressed, Snappy, gzip, Brotli, Zstd, LZ4 and LZ4_RAW are.
- This page does not run SQL. Sorting, grouping and Parquet writing are separate tools.