Parquet encodings and compressions supported
hyparquet handles all standard Parquet encodings and compression codecs.
PLAIN
Raw values with no encoding — strings as length-prefixed bytes, integers as little-endian binary.
RLE / BIT_PACKED
Run-length encoding for repeated values and bit-packed integers. Used for repetition and definition levels.
DICTIONARY
Stores unique values in a dictionary page, then references by index. Most efficient for low-cardinality string columns.
SNAPPY
The default compression codec for pandas and Spark — fast decompression, moderate compression ratio.
GZIP / ZLIB
Higher compression ratio than Snappy at the cost of slower decompression. Common in Hive and older Parquet files.
ZSTD
Modern codec — best compression ratio with fast decompression. Default in DuckDB and newer Spark versions.
Parquet to CSV in Python and CLI
Code examples for common workflows.
pandas — simplest approach
import pandas as pd
df = pd.read_parquet('file.parquet')
df.to_csv('output.csv', index=False)
# Read specific columns only (much faster for wide Parquet files):
df = pd.read_parquet('file.parquet', columns=['col1', 'col2', 'col3'])
df.to_csv('output.csv', index=False)
Requires: pip install pandas pyarrow. Reading specific columns skips the rest entirely — a key Parquet advantage over CSV.
DuckDB — fastest, handles partitioned Parquet
import duckdb
# Single file:
duckdb.query("""
COPY (SELECT * FROM 'file.parquet')
TO 'output.csv' (HEADER, DELIMITER ',')
""")
# Partitioned directory (Hive partitioned):
duckdb.query("""
COPY (SELECT * FROM 'data/*.parquet')
TO 'output.csv' (HEADER)
""")
Requires: pip install duckdb. Handles partitioned Parquet directories, glob patterns and multiple files in one query.
pyarrow — most control
import pyarrow.parquet as pq
import pyarrow.csv as pcsv
table = pq.read_table('file.parquet',
columns=['col1', 'col2']) # optional column filter
pcsv.write_csv(table, 'output.csv')
Requires: pip install pyarrow. Directly converts Arrow Table to CSV without going through pandas — faster for large files.
How Parquet to CSV conversion works
From columnar binary to flat CSV — what happens in your browser.
1
hyparquet parses the binary footer
hyparquet reads the PAR1 magic, parses the Thrift-encoded FileMetaData at the end of the file, and extracts the schema — column names, data types, encoding and compression for every column chunk and row group.
2
Columns decoded and decompressed
Each column chunk is decompressed (SNAPPY, GZIP or ZSTD) and decoded (PLAIN, RLE, DICTIONARY or BIT_PACKED). The decoded values are typed — integers as JS numbers, strings as JS strings, timestamps as JS Date objects.
3
Rows assembled and CSV exported
Column arrays are reassembled into row objects. CSVShift serialises them to RFC 4180 CSV with your chosen delimiter and null representation, with UTF-8 BOM for Excel and Google Sheets compatibility.
When do you need to convert Parquet to CSV?
Common situations where extracting Parquet data to CSV is necessary.
Opening Parquet in Excel
Excel cannot open .parquet files directly. Converting to CSV first is the standard path from a Parquet data export to an Excel spreadsheet for analysis, formatting or sharing with non-technical stakeholders.
Inspecting data lake files
Data engineers who need to quickly inspect a Parquet file from S3, GCS or ADLS — without starting a Spark cluster or running a Python script — can upload it here for instant CSV preview and download.
Format migration
Moving data between systems that support different formats — Parquet for the data lake, CSV for a legacy system, database import tool or BI connector that only accepts flat files.
Sharing with non-engineers
Analysts and business users who receive Parquet files from data pipelines but need the data in a spreadsheet. Converting to CSV produces a file that anyone can open without Python or a SQL client.
Related CSV tools
Other free converters on CSVShift you might need.
Popular searches
parquet to csv converter
convert parquet to csv
parquet to csv python
parquet to csv online
open parquet file online
parquet to csv free
how to convert parquet to csv
parquet file to csv
parquet to csv pandas
read parquet file without python
parquet to excel converter
open parquet file in excel
Parquet decoded
in your browser. No server.
CSVShift uses hyparquet — a pure JavaScript Parquet reader maintained by the open-source data community, used by tools like Observable, Evidence and Hugging Face Datasets. Your .parquet file is read as an ArrayBuffer and decoded locally. Nothing is uploaded or transmitted.
hyparquet handles the full complexity of the Parquet format: Thrift binary metadata, multiple encodings per column, row group iteration, and decompression of SNAPPY, GZIP and ZSTD pages — all in JavaScript without native code or WebAssembly.
Powered by hyparquet
Pure-JS Parquet reader used in production by Observable, Evidence and Hugging Face Datasets viewer.
All encodings supported
PLAIN, RLE, BIT_PACKED, DICTIONARY — the full encoding set produced by pandas, Spark and DuckDB.
Null value control
Choose how null/missing values appear in the CSV — empty cell, NULL, NA or \N for MySQL-style imports.
Free, no conditions
No file size cap, no watermark, no account. Funded by display advertising only.
Common questions about converting Apache Parquet files to CSV.
How do I convert Parquet to CSV?
Upload your .parquet file to CSVShift. The tool uses hyparquet to decode the file and export all rows as a CSV. Works with all standard encodings and SNAPPY, GZIP and ZSTD compression. Download the CSV or copy to clipboard.
How do I convert Parquet to CSV in Python?
Simplest: import pandas as pd; pd.read_parquet('f.parquet').to_csv('out.csv', index=False). Fastest for large files: duckdb.query("COPY (SELECT * FROM 'f.parquet') TO 'out.csv' (HEADER)"). With column selection: pd.read_parquet('f.parquet', columns=['a','b']).
How do I open a Parquet file in Excel?
Excel cannot open .parquet files directly. Convert the Parquet to CSV here, then open the .csv in Excel. For a formatted .xlsx output, convert to CSV first, then use CSVShift's CSV to Excel tool to add bold headers, auto column widths and frozen rows.
What is hyparquet and is it safe?
hyparquet is an open-source pure JavaScript Apache Parquet reader. It is used in production by Observable notebooks, Evidence analytics and the Hugging Face Datasets viewer. CSVShift loads it from esm.sh (a JavaScript CDN) when you click Convert. Your Parquet file is never uploaded — it is decoded locally in your browser using the hyparquet library.
Is my data safe when converting Parquet online?
Yes. Your .parquet file is read as an ArrayBuffer in your browser and decoded by hyparquet locally. No data is uploaded to any server. Open the Network inspector during conversion — the only outbound request is loading the hyparquet library itself from esm.sh, not your file data.