OmniSelect FileSQL

Guides
← Back to App
HomeGuides › Opening a Parquet file offline

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 a text editor shows 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.

ApproachWhat it costs
Python with pandas or pyarrowA good answer 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.
The DuckDB command lineExcellent and fast. Still a download and a command line, which is a real barrier on a locked-down laptop.
SparkEnormous overkill for looking at one file.
A desktop Parquet viewerWorks, but it is software you must install — on a managed machine, that means a ticket.
An online Parquet viewerNo install, but your file is uploaded to someone else's server. Parquet files usually come out of production warehouses, which makes this the worst possible category of file to hand to a stranger.

Doing It in the Browser

OmniSelect FileSQL reads Parquet with DuckDB — the same database engine as the command line, compiled to WebAssembly so it runs inside your browser tab instead of on a server. DuckDB and its Parquet reader are served from this site along with the page; nothing is fetched from anywhere else.

  1. Open the app. That single page load is the only network activity involved.
  2. Add the file. Drag your .parquet file onto the File Select panel. 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, so sales.parquet becomes S — read that column rather than assuming.
  3. Look at it.
    SELECT * FROM S LIMIT 100
    Run that with Ctrl+Enter and you have your first hundred rows, with every column name visible.
  4. Then actually query it. It is a real SQL table, not a preview pane. Asking total amount by region gives:
    SELECT region, SUM(amount) AS total_amount
    FROM S
    GROUP BY region

Or average amount by channel:

SELECT channel, AVG(amount) AS avg_amount
FROM S
GROUP BY channel

Drop a .parquet file in and see inside it.

Open the app →

Genuinely Offline

Once the page has loaded, the network is no longer needed. You can take the interface down entirely — turn off Wi-Fi, unplug the cable — and still open the file, run queries and export results.

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 would rather check than take our word for it, here is how, in about a minute.

💡 For an air-gapped machine, saving the page with Ctrl+S does not give you a working copy: the tool is made of script modules and WebAssembly files that a browser save does not capture, and browsers will not run them from a file opened straight off the disk. A supported, self-contained build you can host on an intranet is available on request. See also the air-gapped guide.

Converting Parquet to CSV or Excel

Often what you actually want is the file in a format a colleague can open. Once it is loaded:

  1. Run a query — SELECT * FROM S for everything, or a narrower one for just the rows and columns you need.
  2. Open the Export menu above the results.
  3. Choose CSV, Excel, JSON or Parquet.

Because the export writes the result rather than the input, putting a WHERE and a column list in front of it converts only what you want — which is usually smaller and always easier to explain.

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 desktop 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 — see the formats guide for a CSV joined to a Parquet file in one SELECT.

Will it read files written by Spark, pandas or DuckDB?

Yes — those all write standard Parquet. Very unusual encodings and encrypted Parquet are the exception; a file that fails to load raises an error rather than producing 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.

Can I write a Parquet file as well as read one?

Yes — Export, then Parquet. That also makes this a quick way to turn a CSV into a Parquet file without installing anything.

Related Guides