dataeng.tools

Convert Parquet to CSV — Free, Private, In-Browser

Your files never leave your browser

Parquet is a columnar, strongly-typed, compressed format built for analytics. CSV is none of those things — it’s flat, untyped text. Going from Parquet to CSV is mostly about handing data to something that can’t read Parquet: a spreadsheet, a legacy loader, or a colleague who just wants to open it and look.

The thing to keep in mind is that you throw the schema away. On the way out, every value becomes text: timestamps serialize to ISO-ish strings, DECIMALs are written verbatim (so they’re exact in the file, but whatever reads the CSV may parse them back as floats and lose digits), and BIGINTs beyond 2^53 will round if the downstream tool treats numbers as doubles. Nested types don’t have a CSV equivalent, so STRUCT and LIST columns are flattened to JSON strings.

Practical notes: a header row is included, NULLs are written as empty fields (not the string “null”), and there’s no compression — expect the CSV to be several times larger than the Parquet it came from. If commas in your data are a worry, convert to TSV instead. Everything runs locally in your browser via DuckDB-WASM; the file is never uploaded.

Drop a file or click to browse

Drop a Parquet file — processed locally, never uploaded

Frequently asked questions

Is my file uploaded anywhere?
No. The Parquet→CSV conversion runs entirely in your browser via DuckDB-WASM. Your file never leaves your device.
How large a file can I convert?
It's bounded by your browser's available memory rather than any server limit — files in the hundreds of MB are routine. DuckDB runs single-threaded here, so very large files just take a little longer.
Do I need an account?
No — it's free and requires no sign-up.
What happens to nested (STRUCT/LIST) columns?
They're serialized to JSON text inside the CSV cell, since CSV has no native nested type. If you need structure preserved, convert to JSON or JSONL instead.
Will I lose numeric precision?
The CSV itself is exact — DECIMALs and big integers are written in full. Precision is only at risk in whatever reads the CSV back, if it parses numbers as floating point.

Related conversions