Parquet Viewer: How to Inspect Schema and Run SQL on Parquet Files Online
Most Parquet files get opened for one of three reasons: you want to see what is actually in them, you want to check the schema before writing a pipeline against it, or you want to run one quick query without spinning up a cluster. None of those need Spark, pandas, or a Python environment — a Parquet file can be read entirely in a browser tab. Here is how to do all three with the Hexabench Parquet Viewer.
1. Load the file
Drag a .parquet file onto the drop zone, or click it to open a file picker. The file is parsed locally using WebAssembly — it is never uploaded anywhere, so this works the same whether the file is 50 KB or contains a sample of production data you would rather not put on a network.
2. Browse the data
Once loaded, the Data tab shows the rows in a paginated table. Use the search box to filter rows without writing SQL, and adjust the page size if you are scanning for a specific value. This is the fastest way to eyeball whether a file looks right before you build anything on top of it.
3. Inspect the schema
Switch to the Schema tab to see every column name, its inferred data type, and null counts — the three things you actually need before writing a downstream transform. This replaces the usual pyarrow.parquet.read_schema() or spark.read.parquet(path).printSchema() round-trip with a click.
# what you'd normally run just to see the schema
import pyarrow.parquet as pq
print(pq.read_schema("data.parquet"))The Schema tab shows the same information — column, type, and nulls — without the environment setup. For a deeper look at type coercion and nested fields across formats, the Schema Inspector tool covers that in more detail.
4. Query it with SQL
The query panel runs SQL directly against the loaded file using DuckDB compiled to WebAssembly — a real SQL engine executing in the tab, not a server round-trip. The file is registered as a table named parquet_data, so any standard SQL works against it:
select category, count(*) as rows, avg(amount) as avg_amount
from parquet_data
where amount > 0
group by category
order by rows desc
limit 10;Running the query switches back to the Data tab and replaces the table with the query result, so you can keep refining it without losing your place. For queries that join multiple files or need a persistent workspace, the standalone SQL Query Tool supports uploading several files at once.
5. Export what you found
Once a query result (or the raw data) looks right, use Export JSON to download it. This is useful for pulling a small, representative sample out of a much larger Parquet file — for a test fixture, a bug report, or a quick check in another tool — without touching the original file.
Why do this in the browser instead of Spark or pandas?
For a one-off check, the setup cost of a Spark session or a Python virtual environment usually outweighs the actual work. A browser-based viewer skips straight to the answer: no cluster to provision, no dependencies to install, and no risk of a stray df.show()printing a production dataset into a shared notebook. It is not a replacement for a real pipeline — it is the fastest path to “what does this file actually contain?” For a broader comparison of ways to open Parquet files locally, see How to Open Parquet Files Without Spark or Python.
Is my data safe?
Yes. Loading, browsing, and querying all happen locally in your browser via WebAssembly. Nothing is uploaded, logged, or sent to a server — you could disconnect from the internet after the page loads and every feature described above would still work.