Convert JSONL to Parquet
Convert newline-delimited JSON to typed, ZSTD-compressed Parquet locally in your browser. Schema is inferred automatically — no upload.
Why convert JSONL to Parquet?
JSONL is great for producing data and terrible for analyzing it: every query re-parses text, field names repeat on every line, and there is no type information. Converting logs or event exports to Parquet gives you typed columns, a fraction of the file size (ZSTD compression), and instant compatibility with DuckDB, pandas, Polars, Spark and every data warehouse.
How this converter works
- Drop a
.jsonl/.ndjsonfile above. - DuckDB reads it with
read_json, inferring a unified schema from the lines — including nested objects and arrays. - The result is written as ZSTD-compressed Parquet and downloads automatically.
As with every tool on this site, the conversion is fully local: your file is never uploaded, so event logs containing user data stay on your machine.
After converting
Open the output in the Parquet Viewer to inspect the inferred schema, or aggregate it immediately in the SQL Workbench — both work on the file you just downloaded without any further setup.
Frequently asked questions
- How is the schema inferred from JSONL?
- DuckDB samples the file and unifies the fields and types it sees — numbers, strings, booleans, timestamps, arrays and nested objects. Fields missing on some lines become nullable columns.
- What happens to nested objects?
- Nested JSON objects become Parquet struct columns and arrays become list columns, preserving the structure for engines like Spark, DuckDB and Polars.
- My lines have inconsistent fields — will it fail?
- Generally no. DuckDB unions the observed keys into one schema and fills missing values with null. Wildly heterogeneous files may end up with very wide, mostly-null schemas though.