Parquet Viewer

// SCHEMA | ROW GROUPS | COMPRESSION | PREVIEW

A metadata and preview inspector. Not a query engine, and not a check that the data is sound. The statistics here are read from the file footer as the writer recorded them, not measured from your data, so they are exactly as trustworthy as whatever produced the file. A dropped file never leaves the browser; a pasted URL is fetched from that host, which sees the request. Open for the full scope limits.

What this tool actually does

Reads the Parquet footer and reports the schema, row groups, column chunks, compression codecs, encodings and the statistics recorded there, then renders a page of rows as a preview. Statistics load instantly for any file size because they are read from the footer, not by scanning the data.

Footer statistics are claims, not measurements

Everything under min, max and null counts is what the writer put there. This tool repeats it; it does not verify it.

  • A writer with a bug, or an older writer, can record statistics that do not match the data it wrote.
  • Many writers omit statistics entirely. An absent null count is not a null count of zero, and reading it that way is the most likely wrong conclusion this page enables.
  • String minimum and maximum values depend on the writer's collation and can be truncated, so they order differently from how your query engine would.
  • Row counts and sizes describe what the footer says the file contains, not what a full read would return.

What "local only" covers, and what it does not

  • Dropped files stay put. Parsing happens entirely in your browser, and file contents are never sent to any server.
  • A pasted URL is different. Your browser fetches it from that host, which sees the request, your IP address and the full URL, including any token embedded in it. That is a network operation you initiated, and this page cannot make it private.
  • The parser arrives over the network. hyparquet and its compressors are loaded from a CDN on first use, as are the sample files. Your data stays in the tab; the code operating on it does not come from you.
  • The browser boundary is wide. Extensions with host access, devtools, exports landing unencrypted in your downloads folder, and page state recovered by a session restore are all inside it.

What it does not do

  • No queries, filters, joins or aggregation. There is no engine here, only a reader.
  • No validation of data against the schema, no checksum or page-level integrity verification, no repair, and no writing.
  • The preview is the first rows of the file, not a random sample. Nothing statistical should be inferred from it.
  • Nested and complex types are rendered so you can read them, not so you can analyse them.
  • Encrypted Parquet, and any file whose codec is unsupported, will fail rather than degrade.

Never use this for

  • Data quality sign-off, or concluding that a file is complete, correct or uncorrupted.
  • Audit, regulatory or compliance evidence about the contents of a dataset.
  • Regulated data on a machine or browser you do not control, including protected health information under HIPAA, cardholder data under PCI DSS, and personal data under GDPR.
  • Loading a URL that carries a credential or a signed token in the query string.
  • Production pipelines, or any automated decision downstream of what you read here.

Before you act on what you see

Confirm anything that matters by reading the data with a proper engine, DuckDB, Spark, pyarrow or your warehouse, which will compute the statistics rather than repeat them. Where the footer and a full scan disagree, the scan is right.

Drop a .parquet file here

or click to choose. Files stay in your browser and are never uploaded.

Try a sample: