How to compare two Parquet files
Load one local file into List A and the other into List B. Parquet Diff reads their metadata and common flat columns, then shows schema changes, row totals, row-group counts, and record differences. The files stay on your device while the page reads them through browser file slices.
- Drop a
.parquetfile into List A, or choosebrowse files. - Load the other
.parquetfile into List B. - Choose a value under
Record comparison mode. - Select one or more common flat fields under
Key column(s)when using keyed matching. - Review
Row groups & row counts,Schema comparison, andRecord comparison.
Parquet schema diff and row-group counts
Schema comparison lists fields in each file and reports fields added in List B or removed from List A. For a common flat field, it can show changes to the physical type, logical type, or nullability. Nested or group columns stay in the schema list, but the record comparison excludes them.
Row groups & row counts shows the total rows and row-group count for each file. The page does not show column compression, column statistics, or per-row-group metadata.
Compare Parquet records by key, position, or hash
Keyed (match by key column(s)) pairs rows with the selected common flat columns. Those key columns do not appear in changed-field details. Duplicate key values are paired by order of appearance and trigger a warning, so the pairing can be ambiguous.
Row order (match by position) compares position 1 in List A with position 1 in List B, then continues by position. An inserted, deleted, or reordered row shifts the matches after it. Row-multiset hash (ignore order, count-only) compares counts of hashes built from the common flat columns. It reports matched, added, and removed counts without before-and-after field values.
A keyed result can show a changed value:
Key: 42
Changed fields: status
Before: ready
After: archived
Choose a comparison mode for the files
Use Keyed (match by key column(s)) when common flat columns identify the same records in both files. The result can list added, removed, and changed records, along with the unchanged count.
Choose Row order (match by position) when the two files keep the same row sequence and you need to compare values at each position. The result treats extra rows at the end as added or removed.
Choose Row-multiset hash (ignore order, count-only) when row order and record identity should be ignored. You get count differences and matched hashes, while individual rows remain unpaired.
Parquet Diff or SQL Schema Diff?
Use Database Compare Tools to choose between comparison pages. Parquet Diff compares two local Parquet files and their records. SQL Schema Diff compares SQL DDL in MySQL, PostgreSQL, SQLite, or SQL Server syntax, including tables, columns, keys, constraints, indexes, and views.
Exports and local file handling
Export JSON includes the schema result and record result. Export CSV contains record statuses, or summary counts in row-multiset mode. Neither export includes the row-group statistics, and CSV does not include the schema result. The Added records and Removed records tables show the first 500 records and at most 10 common columns. Changed records shows the first 500 changed records.
The reader processes row groups in the browser and reads the selected files through local file slices. It does not upload or modify the source files. A corrupt file or an unsupported Parquet type or encoding produces an error instead of a partial comparison.
Frequently asked questions
How do I compare two Parquet files without converting to CSV?
Load one file into List A and the other into List B, then choose a value under Record comparison mode. The page reads Parquet metadata and common flat columns in the browser, then reports schema, row-group, and record differences.
Which Parquet record comparison mode should I use?
Use Keyed (match by key column(s)) when common flat columns identify records, Row order (match by position) when positions align, and Row-multiset hash (ignore order, count-only) when order and record identity should be ignored.
Why are my Parquet fields unavailable as key columns?
Keyed matching requires at least one common flat column in both files. Nested or group columns are excluded from record comparison, and keyed mode is unavailable when the files have no common flat column.
Does Parquet Diff upload the files?
The selected files are read through browser file slices for the comparison. The workflow does not upload or modify them.