Parquet to CSV
Convert Parquet to CSV in your browser
Free Parquet to CSV converter, no signup, no Python, nothing uploaded. Drop a .parquet file up to 1.5 GB, even 7.4 million rows, look at the data, press Export and download a CSV with a header row that opens in Excel or Google Sheets. Snappy, zstd, gzip, brotli and lz4 compressed files all open.
No file handy? Open NYC taxi trips, April 2019 (7.4M rows, 127 MB).
Why Excel can't open a Parquet file
Parquet is a binary, column-oriented format with compression per column, built for query engines rather than spreadsheets. Excel, Numbers and Google Sheets don't read it, and most online converters either cap the file at a few megabytes or upload it to a server first.
This page runs DuckDB inside your browser tab. It reads Parquet natively, including snappy, zstd, gzip, brotli and lz4 compressed files and files with multiple row groups, and nothing is uploaded unless you press Share.
Make a CSV that Excel will actually open
Excel stops at 1,048,576 rows per sheet and Google Sheets at 10 million cells. The taxi sample on this page has 7.4 million rows and comes out as a 685 MB CSV, which no spreadsheet opens whole. Filter first: passenger_count:>4 tip_amount:>10 keeps 12,546 of them, and Export writes only those.
For a fixed slice, SQL does it: SELECT * FROM data WHERE pickup_at >= '2019-04-15' LIMIT 500000. SQL results are capped at 1,000,000 rows, which is also right under Excel's limit.
What the CSV looks like
UTF-8, comma separated, one header row with the Parquet column names, values quoted where needed. Nulls become empty cells. Timestamps and decimals are written as text in their full precision. Nested columns (lists and structs) are written as JSON text inside the cell, so nothing is silently dropped.
Text cells that start with =, +, - or @ get a leading apostrophe. That stops Excel and Sheets from running a cell like =HYPERLINK(...) as a formula when someone opens the file.
Pick the columns and the order
Hide the columns you don't need and they stay out of the CSV. Click a header to sort, shift-click for a second sort key, and the file is written in that order. The column stats panel shows non-null counts, distinct values and min/max, which is a quick way to see which columns are worth keeping.
The same Export menu also writes JSON, JSONL, Markdown (first 1,000 rows) and a fresh zstd Parquet file, if what you really wanted was a smaller Parquet.
Parquet files behind a URL
A public Parquet file on S3, GitHub or a data portal opens without downloading it first: put the URL after the domain, like rows.page/https://blobs.duckdb.org/data/taxi_2019_04.parquet. Files the source serves with CORS headers load straight into your tab; others go through a proxy that accepts up to 100 MB.
To hand the CSV to someone else, press Share instead of mailing a 200 MB attachment. The link opens the same table, with filters, on their phone.
Limits for converting Parquet to CSV
| What | Limit or price |
|---|---|
| Open in the browser | Parquet files up to 1.5 GB, $0, no account |
| Compression | snappy, zstd, gzip, brotli, lz4 |
| Output | CSV with a header row, UTF-8, formula-safe cells |
| Excel | Opens at most 1,048,576 rows per sheet, so filter first |
| Rows | No cap through filters; SQL results export the first 1,000,000 rows |
| Remote files | Public URLs, up to 100 MB through the proxy |
| Share a link without an account | $0, files up to 100 MB, link deleted 7 days after creation |
| Free account | $0, 10 datasets kept, last 3 versions |
| Pro | $12/month, 100 datasets, files up to 500 MB, private links |
| Max | $39/month, 1,000 datasets, files up to 2 GB, private links |
Questions
Is my Parquet file uploaded?
No. Opening a file reads it inside your browser tab. It only leaves your machine if you share it or push it with curl.
Will the CSV open in Excel?
Yes, as long as it has at most 1,048,576 rows. Bigger files open here and in DuckDB, Polars or pandas, but not in a spreadsheet. Filter or LIMIT before you export.
Do I need pandas, pyarrow or Spark?
No. DuckDB runs inside the page and reads Parquet directly. There is nothing to install.
How do I export only the first 100,000 rows?
Type SELECT * FROM data LIMIT 100000 in the filter bar, wait for the table, then press Export and pick CSV.
What happens to nested columns?
Lists and structs are written as JSON text in the cell. If you want them as separate columns, pull them apart with SQL first, for example SELECT location.lat AS lat, location.lon AS lon FROM data.
More tools
- CSV viewerOnline CSV viewer for big files
- Parquet viewerParquet viewer, no Python needed
- JSONL viewerJSONL viewer for logs, evals and traces
- JSON to tableJSON to table, nested fields included
- Past Excel's row limitExcel stops at 1,048,576 rows. Open the rest here.
- CSV to ParquetConvert CSV to Parquet in your browser
- JSON to CSVConvert JSON to CSV, nested objects included
- CSV to JSONConvert CSV to JSON or JSON Lines
- JSONL to CSVConvert JSONL to CSV in your browser
- TSV to CSVConvert TSV to CSV in your browser
- CSV to MarkdownTurn a CSV into a Markdown table
- SQL on CSVRun SQL on a CSV file in your browser
- Share a CSVShare a CSV as a link, not an attachment
- Version control for CSVVersion control for CSV files, without git
Pushing data from a script or agent? Read the docs.