How to Open a Parquet File Offline
Somebody sent you a .parquet file. Double-clicking it does nothing useful, Excel will not touch it, and opening it in a text editor gives you a screenful of binary noise. You just want to see what is inside.
Why You Cannot Just Open It
Parquet is a columnar binary format. Rather than storing row after row as CSV does, it stores each column separately, compressed, with a footer describing the layout. That is what makes it fast and small for analytics — and completely unreadable without something that understands the format.
So every route to seeing the contents needs a Parquet reader. The question is only which one, and what it costs you to get it.
The Usual Routes
| Approach | What it costs |
|---|---|
| Python with pandas or pyarrow | The standard answer, and a good one if Python is already set up. Otherwise it is an install, a virtual environment and a dependency or two before you see a single row. |
| DuckDB | Excellent and fast. Still a download and a command line, which is a real barrier on a locked-down work laptop. |
| Spark | Enormous overkill for looking at one file. |
| A desktop Parquet viewer | Works, but it is software you must install — and on a managed machine, that means a ticket. |
| An online Parquet viewer | No install, but your file is uploaded to someone else's server. Parquet files usually come out of production data warehouses, which makes this the worst possible category of file to hand to a stranger. |
There is another route that avoids all of those trade-offs: a browser that can read Parquet itself, locally, with nothing installed and nothing uploaded.
Doing It in the Browser
OmniSelect FileSQL reads Parquet using a WebAssembly build of the Apache Arrow Parquet reader — the same underlying implementation the Python tools use, compiled to run inside your browser tab instead of on a server.
- Open the tool. Go to the main page. That single page load is the only network activity involved.
- Add the file. Drag your
.parquetfile onto the File Select panel, or click to browse. It is decoded locally and becomes a SQL table named by a single letter, shown in the Alias column. The letter comes from the start of the filename, sosales.parquetbecomesS— check that column rather than assuming, and change the letter if you want to. - Look at it.
SELECT * FROM S LIMIT 100
Run that withCtrl+Enterand you have your first hundred rows, with every column name visible. - Then actually query it. It is a real SQL table, not a preview pane:
SELECT region, COUNT(*) AS n, SUM(revenue) AS revenue_total FROM S WHERE order_date >= '2024-01-01' GROUP BY region ORDER BY revenue_total DESC
Drop a .parquet file in and see inside it.
Open the tool →Genuinely Offline
Once the page has loaded, the network is no longer needed. You can disconnect entirely — turn off Wi-Fi, unplug the cable — and still open files, run queries and export results. Nothing is fetched and nothing is sent.
This matters more for Parquet than for most formats. Parquet files tend to be extracts from warehouses and production systems, which is to say they tend to contain exactly the data you are not allowed to upload anywhere. If you want to satisfy yourself rather than take our word for it, here is how to verify it in about a minute.
Ctrl+S, and carry the folder across. It runs from local disk. A supported, self-contained build for internal hosting is also available on request.Converting Parquet to CSV or Excel
Very often what you actually want is the file in a format a colleague can open. Once it is loaded:
- Run
SELECT * FROM S— using your file's alias letter — or a query selecting just the columns and rows you want to hand over. - Click Export in the Query Results panel.
- Choose CSV, JSON, Excel or Parquet.
The file is written in your browser and saved straight to your downloads folder. Exporting a filtered subset is usually the better move — it keeps the recipient's spreadsheet a manageable size and avoids sending columns nobody needs.
Reasonable Questions
How large a file can it handle?
Up to 50 MB per file, and a million rows. Because Parquet is compressed, a 50 MB file often holds a great deal more data than a 50 MB CSV would. Beyond that, the work belongs in DuckDB or a warehouse — and that is the right answer, not a grudging one.
What about nested and repeated columns?
Nested structures are flattened into dot-path column names, so a nested address.city field becomes its own queryable column. Repeated fields produce one row per element with the parent values repeated alongside. It is the same flattening used for JSON and XML.
Can I join a Parquet file to a CSV?
Yes. Load both and each becomes a table, regardless of format — sales.parquet and regions.csv would be S and R. Joining a Parquet extract to a CSV lookup list is one of the more useful things this tool does — see the joining guide.
Will it read files written by Spark, pandas or DuckDB?
Yes — those all write standard Parquet. Very unusual encodings or encrypted Parquet are the exception; if a file fails to load, an error appears rather than silently wrong data.
Can I see the schema without loading everything?
Run SELECT * FROM S LIMIT 1. The result headers give you the full column list, including the full dot-path for nested fields shown beneath each short name.