# ParquetViewer puts a SQL query box in front of Parquet files, and that is the whole product

> A small Windows desktop application for looking at Apache Parquet files, with metadata inspection, ad hoc SQL queries, partition handling, schema generation and previews for image and audio columns. The interesting details are in what the app does and how it is distributed.

**mukunku/ParquetViewer** — Simple Windows desktop application for viewing & querying Apache Parquet files

- Repository: https://github.com/mukunku/ParquetViewer
- Stars: 1,249 · Forks: 136
- Language: C#
- License: GPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/mukunku-parquetviewer

## The problem is that Parquet is not readable without a stack

ParquetViewer is described as a simple Windows desktop application for viewing and querying Apache Parquet files, and the project summary calls it a utility to quickly view Apache Parquet files on Windows desktop machines.

The word simple is doing real work in that sentence, and it points at why the tool exists. Parquet is a columnar format designed for distributed analytical engines, and reading one properly normally means installing a query engine, a Python or Scala environment, and enough configuration to point them at the file. That is a reasonable setup for a data engineer and a poor setup for anyone who just needs to look at one file, find out what is in it and pull a few rows.

The feature list describes the answers to those questions. You can view the Parquet file metadata, which tells you the schema, the row counts, the compression and the statistics that the file carries. You can run simple SQL queries on the Parquet data, which is the feature that turns a viewer into something you can do analysis in. You can open single or partitioned files, which matters because a dataset on disk is usually a directory of part files rather than one file. You can generate a SQL schema from the Parquet files, which is how you get from an unfamiliar file to a CREATE TABLE statement you can paste into a warehouse.

And you can easily preview and export image and audio data, which is a small feature that says a lot about the audience. Parquet is used to store unstructured and semi-structured payloads alongside structured columns, and if your file has an image column you want to see the image, not a hex blob. The same applies to audio.

The repository structure is consistent with a small desktop application. There is a `src/` directory holding the C# project and a `wiki_images/` directory with the screenshots the README embeds, plus the standard `.github/`, `.gitignore` and `LICENSE` at the root. There is no library directory, no test directory and no documentation directory, because the documentation is a wiki and the code is the application.

## The wiki, the releases and the code signing are the distribution story

Everything a user needs to run the tool is outside the repository, and that is worth spelling out because it shapes what you can review before you install it.

The releases are on the GitHub releases page, and the README links to them as the download location. The usage documentation is in the project wiki, linked from the README, and the wiki also holds the privacy policy that the analytics footnote points to. The screenshot at the top of the README comes from a `wiki_images/` file in the repository, so the wiki and the repository are maintained together by the same person.

The binaries are code signed. The README credits free code signing provided by SignPath.io with a certificate by the SignPath Foundation, which is the arrangement open source projects use to get a signing certificate without paying for one. For a Windows application that people are going to run on a machine with SmartScreen enabled, that is the difference between a download that runs and one that warns, so it is a meaningful part of the user experience rather than a nicety.

The version numbering is a little unusual and is worth reading carefully if you script against it. The recent release tags are v4.3.0.1 for v4.3.0, v4.2.1.0 for v4.2.1, and v4.2.0.0 for v4.2.0. So the release tag carries a fourth component that the release name does not, which suggests the tag distinguishes build or packaging iterations of the same feature version.

The cadence is steady. v4.3.0.1 came on 2026-10-11, v4.2.1.0 on 2026-08-15 and v4.2.0.0 on 2026-07-14, and the last push to the repository was on 2026-10-15 with the repository not archived. So the project is actively maintained, and the releases are frequent enough that a version you download today will be superseded within a couple of months.

## The analytics are opt-in, and the footnote is the point

The README has an Analytics section that is short and worth reading carefully.

Users can opt-in to share anonymous usage data to help make the app better, and the footnote points to a full privacy policy hosted in the project wiki. There is also a link to the ParquetViewer Analytics Dashboard, with the note that you can check it out if you are interested.

Three things are notable here. The choice is opt-in, so nothing is collected unless you say so. The data is described as anonymous usage data. And the project publishes a live dashboard, which is a much stronger transparency signal than a policy document alone, because anyone can see what the aggregate data actually looks like.

The analytics are hosted on Amplitude, and the dashboard link points at an Amplitude analytics share URL, which is a public sharing link rather than a private workspace. That is consistent with the intent, since the point of a public dashboard is that the data is visible to everyone including the people who did not opt in.

For a tool in an enterprise environment, this is the detail to check first. Opt-in analytics on a desktop application is ordinary, but the questions a security team will ask are whether anything is collected by default, what the events contain, and whether the opt-in is easy to find. The README answers the first, the wiki answers the second, and the dashboard answers the third. Reading all three takes a few minutes and settles the matter, which is a better position than a tool that says nothing about telemetry at all.

## Schema generation and partitions are the two features that save the most time

Two of the listed features do more work than they sound like, and they are the reason to reach for this tool rather than opening the file in a text editor.

Generating a SQL schema from Parquet files is the one that pays for the download. A Parquet file carries its schema in its metadata, so a file written by a Spark job or a pipeline has column names and types already defined. Getting them out as a CREATE TABLE statement means you can point a warehouse at the same data without hand transcribing column names, and hand transcription is where the typos live. The README lists it as a distinct feature, which suggests it is a one-click operation rather than something you have to hand script.

Opening partitioned files is the other one. The reality of a Parquet dataset on disk is a directory tree, with a partition key encoded in the directory names and one or more part files per leaf, and the partitioning scheme is something the schema alone does not describe. An application that opens a single file and does not understand the directory layout will either refuse the dataset or quietly show you a fraction of it. The feature list says single or partitioned files, so both are handled, and the path is through the open dialog rather than through a configuration file.

Together with the SQL query box, those two features make the application cover the three questions you actually have when a Parquet file lands on your machine: what is in it, what does the shape look like, and what do the rows say. The metadata view answers the first, the schema generator answers the second, and the query box answers the third.

The image and audio preview closes the loop on the cases where the payload itself is the thing you came to see, which is a common shape for machine learning datasets where the Parquet holds the tensor or the encoded media alongside the labels.

## A GPL-3.0 desktop tool, and where it is the wrong shape

The licence is GPL-3.0, with the text in the LICENSE file at the repository root, and that is the constraint to think about if you plan to build on it.

For a desktop application you download and run, the GPL is not a practical issue. You are not distributing the application, and the terms are about redistribution.

The constraint appears if you want to do something else with it. If you fork the application and distribute your version, the GPL applies to your version. If you want to embed ParquetViewer in a larger product, or to reuse its query engine in a service, you are in copyleft territory and the question is whether your distribution model is compatible. The short version is that a GPL component inside a larger distributed work tends to pull the whole work under the GPL.

What you almost certainly want instead is the query engine alone. The application is a shell around an embedded Parquet and SQL engine, and if you are reading this to decide whether to use the library part, the answer is that ParquetViewer is not published as a library. The repository has no package structure for it, no library project, and the source is an application project.

So the honest use cases are the narrow ones. Someone on a Windows machine needs to look at a Parquet file, and they do not want to install Spark, DuckDB, a Python environment or a notebook. They download ParquetViewer, they look at the file, and they are done. For anything in a pipeline, the equivalent is a proper engine, and ParquetViewer is not the place to look for it.

The GPL also means the project is more likely to attract outside contributions, and the README invites pull requests directly for new features. That is a reasonable way for a small utility to keep improving, and it is also a reason the feature set is what it is, driven by what users actually asked for rather than by a roadmap.

## Conclusion

Adopt ParquetViewer if you need to inspect Parquet files on a Windows machine without setting up a query engine, Spark or a notebook environment. Do not adopt it as part of a data pipeline, because it is a desktop inspection tool rather than a library, and it is GPL-3.0 licensed, so a derived tool would carry that obligation. Verify first that the query dialect it accepts matches what you need, that the Parquet features your files use are supported by the embedded engine, and that the opt-in analytics are acceptable in your environment, since that choice is made inside the app.

## FAQ

### What can ParquetViewer do with an Apache Parquet file?

It can show the file metadata, run simple SQL queries against the data, open single or partitioned files, generate a SQL schema from the Parquet files, and preview and export image and audio data stored in columns.

### Where do I download ParquetViewer and find its documentation?

Releases are published on the GitHub releases page, and the usage documentation is in the project wiki at github.com/mukunku/ParquetViewer/wiki. The binaries are code signed with free signing from SignPath.io.

### Does ParquetViewer collect usage data?

Users can opt in to share anonymous usage data, and the README links both a full privacy policy in the wiki and a public ParquetViewer Analytics Dashboard hosted on Amplitude. The opt-in is off unless you enable it.

### Which platforms does ParquetViewer support?

It is a Windows desktop application, described as a utility to quickly view Apache Parquet files on Windows desktop machines. The project description calls it a simple Windows desktop application for viewing and querying Apache Parquet files.

### What licence is ParquetViewer released under?

GPL-3.0, with the licence text in the LICENSE file at the repository root. The project is a desktop application rather than a published library, so the copyleft terms matter if you fork or redistribute it.

## Sources

- [Issues](https://github.com/mukunku/ParquetViewer/issues)
- [License: GPL-3.0](https://github.com/mukunku/ParquetViewer/blob/main/LICENSE)
- [mukunku/ParquetViewer on GitHub](https://github.com/mukunku/ParquetViewer)
- [README](https://github.com/mukunku/ParquetViewer/blob/main/README.md)
- [Releases](https://github.com/mukunku/ParquetViewer/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/mukunku-parquetviewer
