data

Schema Diff

Compare two Parquet, CSV, TSV, JSONL, or NDJSON files and inspect schema additions, removals, type changes, and more.

Local processing
About your filesFiles and content selected in this tool are processed in your browser and are not uploaded to a Browser Kitty backend.
Operation demo See the basic workflow in a short video.

About this tool

Schema Diff is a browser tool for loading Before and After files and inspecting how their schemas changed rather than comparing every data value. It supports Parquet, CSV, TSV, JSONL, and NDJSON and reports field additions/removals, type and nullability changes, decimal details, nested structure changes, and more.

Parquet uses its declared file schema, while CSV, TSV, JSONL, and NDJSON schemas are inferred from observed data. Inferred schemas are not treated as explicit data contracts, and cross-format comparisons use conservative normalized types. Selected files, searches, comparison results, and report generation stay in the browser and are not uploaded to Browser Kitty.

Good for

  • Check whether Parquet columns or types changed unexpectedly before and after a data-pipeline update
  • Inspect whether fields or inferred types in CSV, TSV, or JSONL changed from a previous file
  • Compare schemas across different formats such as Parquet and CSV using conservative normalized types
  • Review the likely impact of schema changes and save the results as Markdown or JSON reports

What it can do

Key capabilities available in this tool.

How to use

  1. Open the tool and add the source file as Before and the comparison file as After.
  2. For CSV, TSV, JSONL, or NDJSON, adjust the inference row limit if needed. CSV and TSV also let you adjust header handling.
  3. Optionally open the first-10-row preview for Before and After to verify the inputs.
  4. Select Compare schemas and review additions, removals, type/nullability changes, structural changes, and other differences.
  5. Use field-path search and display filters to narrow the result to the changes you need to inspect.
  6. Copy the result or save the full comparison as a Markdown or JSON report when needed.

Supported

  • Input: Parquet, CSV, TSV, JSONL, and NDJSON, including cross-format comparisons among supported formats.
  • Parquet: compare nested STRUCT / LIST / MAP, physical/logical types, REQUIRED / OPTIONAL / REPEATED, decimal details, and Field IDs.
  • CSV / TSV / JSONL / NDJSON: infer schemas from observed data and clearly distinguish them from declared schemas.
  • Results: field-path search, change filters, Markdown copy, and Markdown / JSON report export.

Limitations and notes

  • Compatibility impact is guidance rather than a universal guarantee. Actual compatibility depends on the reader/writer, table format, and application contract.
  • CSV, TSV, JSONL, and NDJSON do not carry an explicit file-wide schema, so inferred types and nullability depend on observed data and inference settings.
  • Similar names alone are not treated as renames. For Parquet, rename matching uses a Field ID only when that ID is unique on both sides.
  • The first-10-row Parquet preview has codec limitations. Schema comparison may still continue when a row preview cannot be decoded.

Frequently asked questions

Are the files I compare uploaded to a server?

No. Before/After loading, schema inference and comparison, previews, and report generation run in the browser and are not uploaded to Browser Kitty.

Can I compare different formats such as Parquet and CSV?

Yes. The tool preserves source type information and maps only meaningfully similar types to conservative normalized types. It does not force uncertain structures to be treated as equivalent.

Can it automatically recognize renamed fields?

For Parquet, it can match a rename when the same Field ID is unique on both sides. Similar field names alone are not treated as a rename.

Do CSV or JSONL files have a declared schema?

In this tool, schemas for CSV, TSV, JSONL, and NDJSON are inferred from observed data. They are different from Parquet's declared schema, so the UI distinguishes them and generally treats changes involving inferred schemas as needing review.

Offline version and source code

Save the standalone HTML build to compare Parquet, CSV, TSV, JSONL, and NDJSON schemas, preview rows, filter results, and generate Markdown / JSON reports without runtime external connections.

View source on GitHub