Parquet Viewer & Parquet Explorer
Parquet Viewer & Parquet Explorer for Large Parquet File, Schema & Nested Data, a VS Code extension by Zovo
Open .parquet, .parq and .pq files in VS Code as a fast, sortable grid. Free, no sign-in, works offline. No Python, no parquet-tools, no Java and no native modules: it is plain JavaScript, so it runs the same on Windows, macOS (Apple silicon too), Linux, Remote SSH, WSL and Codespaces.
Free, MIT license. Needs VS Code 1.90.0 or newer. Extension ID zovo.zovo-parquet-viewer, version 0.2.2.

- Large files open at once. Opening reads the footer only (the 2.7 MB file in the picture opened in 11 ms after reading 512 KB), and rows are read in blocks as they scroll into view, in a background thread, so VS Code never freezes.
- Exact values. DECIMAL up to 38 digits, INT64 and UINT64 above 2^53, and nanosecond timestamps show every digit. INT96 timestamps from Spark and Hive are read too.
- Nested data. LIST, MAP and STRUCT columns show as compact JSON in the grid and as an expandable tree in the detail pane.
- Every codec. Snappy, Gzip, Zstd, Brotli, LZ4 and LZ4_RAW, data pages v1 and v2, dictionary, delta and byte-stream-split encodings.
What you can do with the rows:
- Filter, sort and search on the whole file, not only the rows on screen. Copy cells or rows as CSV, JSON or a Markdown table, and export the filtered rows to CSV or JSON Lines.
- Schema tab with every column type, the row groups, compression, page index and key-value metadata, and Copy schema as JSON.
- Clear messages for files that are cut off, damaged, encrypted or not Parquet at all, instead of a blank tab or a spinner that never ends (below: a file cut off in the middle).

- Dark, light and high-contrast themes follow VS Code.
Questions people ask
Is Parquet Viewer & Parquet Explorer free?
Yes. Parquet Viewer & Parquet Explorer is free and MIT licensed.
How do I install Parquet Viewer & Parquet Explorer?
Click "Install in VS Code" above, or search for zovo.zovo-parquet-viewer in the Extensions view.
How to use it
- Click a Parquet file in the Explorer. It opens in the grid. (Right-click a file and pick Open in Parquet Grid Viewer if another editor is the default.)
- Click a column header to sort (again for descending, a third time to clear).
- Type in the box under a header to filter that column:
| You type | Rows shown | |
|---|---|---|
air | the value contains "air" (any case) | |
=cash | the value is exactly "cash" | |
!night | the value does not contain "night" | |
>100, <=0.5 | numeric compare in number columns, text compare in others | |
5..9, 2026-03-01..2026-03-31 | between, both ends included | |
null, !null | empty or not empty | |
| `/^JFK\ | LGA/` | a regular expression |
- The search box at the top looks in every column, nested ones too.
- Click a cell and press Enter (or click Details) to see the whole value. Nested cells open as a tree.
- Select cells with the mouse, Shift+click or Shift+arrows, or click row numbers for whole rows. Copy puts them on the clipboard as CSV, JSON or Markdown. Ctrl+C (Cmd+C) copies tab-separated text for a spreadsheet.
- Export saves every row of the current view (filters and sort applied) as CSV or JSON Lines.

Large files
Opening a file reads the footer only. Rows are read in blocks as they scroll into view, from the row group that holds them: 2,000 rows at a time when the file has a page index (then only the needed pages are read), bigger blocks when it has none. Up to about 1.5 million decoded cells stay in memory; older blocks are dropped.
Filter, sort, search and export read the needed columns of every row group in turn, in a background thread, with a progress bar and a Cancel button. Sorting keeps one column of the matching rows in memory, so it stops at 2,000,000 rows (setting parquetViewer.maxSortRows); filter first to sort part of a bigger file.
| Setting | Default | What it does |
|---|---|---|
parquetViewer.maxSortRows | 2,000,000 | most rows a sort works on |
parquetViewer.maxMatches | 5,000,000 | filters and search stop after this many matches |
parquetViewer.maxCopyRows | 100,000 | most rows copied at once (export has no limit) |
parquetViewer.maxFooterMB | 256 | larger metadata shows a message |
parquetViewer.maxChunkMB | 2,048 | a larger column chunk shows a message |
parquetViewer.maxVirtualFileMB | 512 | files on remote or virtual file systems are read whole up to this size |
Why this one
People reported these problems with Parquet viewers on the Marketplace. Each one is covered by a test in this repo or by the real VS Code check before release.
| Reported problem | Here |
|---|---|
| Large files keep loading or never open (1, 2, 3) | only the footer is read on open, then the rows on screen, in a background thread; damaged files get a message, not a spinner |
| "invalid parquet type: DECIMAL" (1, 2, 3) | DECIMAL in INT32, INT64, FIXED_LEN_BYTE_ARRAY and BYTE_ARRAY, exact to 38 digits |
| ZSTD, Gzip, Brotli or LZ4 files fail (1, 2, 3) | all of them, checked to give the same rows |
| Needs parquet-tools, Python or a native module, fails on Windows or Apple silicon (1, 2, 3) | plain JavaScript, nothing to install |
| Integers above 2^53 show the wrong value (1) | INT64 and UINT64 are exact, in the grid, in copy and in export |
| Struct columns are not shown (1) | LIST, MAP and STRUCT, any depth, with a tree view |
.parq files do not open (1) | .parquet, .parq and .pq |
Column names with % or file names with ' break (1, 2) | tested with a file named it's 100% names.parquet |
| No total row count or filtered count (1) | both, in the toolbar and the status bar |
| A review says the viewer asked for payment (reviews) | free, with no paid tier and no license key |
Privacy
The viewer makes no network requests. The webview's content security policy is default-src 'none', scripts run only with a per-page nonce, and there is no telemetry. The file is opened read-only and is never changed. The only links that leave VS Code are the Rate, Sponsor and More free viewers links, and only when you click them.
Limits
- Encrypted Parquet files (Parquet Modular Encryption) show a message: the viewer does not ask for keys.
- Files whose column chunks live in other files (
file_pathin the metadata) are not supported. - Remote and virtual file systems have no range reads, so those files are read whole, up to
parquetViewer.maxVirtualFileMB. - The viewer is read-only. To change data, use your usual tool (pandas, Polars, DuckDB, Spark).
Credits
Parquet decoding by hyparquet and hyparquet-compressors (MIT). Test files include samples from apache/parquet-testing (Apache-2.0). See THIRD-PARTY-NOTICES.txt.
Guides
- Use a Parquet viewer in VS Code
- Excel Viewer Online, free in your browser with no upload
- Parquet Viewer Online, free in your browser with no upload
Install Parquet Viewer & Parquet Explorer
Click the button to open VS Code and install it, or press Ctrl+P (Cmd+P on macOS) in VS Code and run ext install zovo.zovo-parquet-viewer.
Free, MIT license. Needs VS Code 1.90.0 or newer. Extension ID zovo.zovo-parquet-viewer, version 0.2.2.
Source code and issues are on GitHub.
Support this work
If this extension saves you time, you can support the work on GitHub Sponsors. Monthly tiers start at $5, and one-time tiers start at $15. Sponsorship is optional, and the tool works the same without it.
Need your format supported?
Open a format request with a sample file, and I reply there whether it can be done. For USD 299 once, through this GitHub Sponsors tier, I add your file format or a missing feature to this extension, with tests, within 7 days.