Convert Parquet to TSV — Free, Private, In-Browser
Parquet is a columnar, strongly-typed, compressed file built for engines. TSV is flat, untyped, tab-delimited text. You reach for this conversion when the next hop cannot read Parquet and also hates commas: a warehouse COPY that wants TAB, a bulk loader, a genetics or logs pipeline that already splits on a tab, or a colleague whose script has delimiter=tab hardcoded. The in-browser converter reads the Parquet with DuckDB-WASM and writes a headered TSV locally — drop the file, preview the schema, download. Nothing is uploaded.
The cost is the schema. Every value becomes text on the way out: timestamps serialize to ISO-ish strings, DECIMALs are written verbatim (exact in the file, but whatever reads the TSV may parse them as floats and lose digits), and BIGINTs past 2^53 will round if a downstream tool treats numbers as doubles. Nested STRUCT and LIST columns have no TSV equivalent, so they flatten to JSON strings inside a cell. NULLs become empty fields, not the word null. A header row is included. There is no compression, so expect the TSV to be several times larger than the Parquet it came from.
Tabs are the point. Comma-heavy values — addresses, notes, currency — no longer need RFC 4180 quoting, which is why people pick TSV over CSV for this hop. The rare value that does contain a literal tab or a newline is quoted automatically so the file stays parseable. If the receiver is delimiter-agnostic, CSV is the more widely supported target and you can skip this page. Everything runs in your browser via DuckDB-WASM; the Parquet never leaves your machine.
Drop a file or click to browse
Drop a Parquet file — processed locally, never uploaded
Frequently asked questions
- Why TSV instead of CSV?
- Use TSV when the receiver specifically splits on tabs, or when your values are full of commas and you want to stop quoting every address. If the next tool accepts either delimiter, CSV is more widely supported — convert to CSV instead.
- What happens to nested STRUCT/LIST columns?
- They're serialized to JSON text inside the TSV cell, since TSV has no nested type. If you need structure preserved, convert to JSON or JSONL instead.
- Will I lose numeric precision?
- The TSV itself is exact — DECIMALs and big integers are written in full. Precision is only at risk in whatever reads the TSV back, if it parses numbers as floating point.
- Is my file uploaded anywhere?
- No. The Parquet→TSV 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.
Do more with your Parquet file
- Parquet InspectorRead a Parquet file's schema, row groups, compression & column stats.
- Warehouse DDLGenerate Snowflake/BigQuery/Redshift CREATE TABLE & load commands.
- dbt generatorGenerate a dbt sources.yml, staging model & schema.yml from a schema.
- File validatorDetect a CSV's delimiter, find unparseable rows & check Parquet integrity.