Apache Parquet converter
Convert Parquet files with care for schemas, column types, compression, nested data, row groups, and spreadsheet exports.
.parquet
Format
About Apache Parquet
Apache Parquet is a binary columnar data format designed for analytics rather than manual editing. It stores data by column, with schema metadata, row groups, pages, encodings, compression, and optional statistics that query engines can use to skip work. Parquet is common in data lakes, Spark jobs, DuckDB workflows, pandas exports, warehouse unloads, and object-storage pipelines. It is not a spreadsheet even when the data is tabular. Our tabular routes convert Parquet to CSV, TSV, JSON, JSONL, YAML, XML, XLSX, ODS, SQL, HTML, Markdown, or TXT, and can write Parquet from supported tabular sources when the writer dependency is present.
Version and implementation details affect interoperability. Parquet files can use different physical encodings, logical types, timestamp units, dictionary pages, compression codecs, and nested schemas. A string column, a decimal column, and a binary column may all look like text after a careless export but behave differently in SQL. Timestamps may be stored as milliseconds, microseconds, or nanoseconds, with or without timezone assumptions. Some files use nested lists and structs that do not flatten cleanly. Column order, nullability, and statistics may matter to downstream query planning even though they are invisible in a CSV preview.
Readers and writers include Apache Spark, Hive, Trino, Presto, DuckDB, pandas, PyArrow, Polars, BigQuery exports, Snowflake stages, and browser-side readers. Analysts often convert Parquet to CSV or XLSX for inspection, while production systems usually keep Parquet because it is compact and typed. Data engineers convert CSV, JSONL, or SQL extracts to Parquet when they want faster scans and smaller storage. Product teams may need a spreadsheet sample from a Parquet file to debug a support ticket. The right conversion depends on whether humans need review or systems need typed storage.
Parquet conversion breaks when a typed, nested, multi-row-group file is forced into flat text. Parquet to CSV drops schema metadata, compression, statistics, and precise logical types. Parquet to XLSX is useful for review but inherits spreadsheet row limits and date display quirks. Parquet to JSONL can preserve records better than CSV when nested values are stringified or expanded. CSV to Parquet needs deliberate type choices or everything risks becoming text. Before converting, inspect schema, row count, column count, timestamp units, and nested fields. Keep Parquet as the source of record for analytics jobs, and treat spreadsheets as review derivatives.
Convert Apache Parquet to…
- Apache Parquet to CSV
- Apache Parquet to JSON
- Apache Parquet to Excel XLSX
- Apache Parquet to TSV
- Apache Parquet to Plain text
- Apache Parquet to JSON Lines
- Apache Parquet to YAML
- Apache Parquet to XML
- Apache Parquet to OpenDocument Spreadsheet
- Apache Parquet to SQL
- Apache Parquet to Markdown
- Apache Parquet to HTML
Convert to Apache Parquet from…
- CSV to Apache Parquet
- Excel XLSX to Apache Parquet
- TSV to Apache Parquet
- Plain text to Apache Parquet
- JSON to Apache Parquet
- JSON Lines to Apache Parquet
- YAML to Apache Parquet
- XML to Apache Parquet
- Excel XLS to Apache Parquet
- OpenDocument Spreadsheet to Apache Parquet
- SQL to Apache Parquet
- Markdown to Apache Parquet
- HTML to Apache Parquet
Common Apache Parquet problems
A stakeholder needs to inspect a Parquet dataset without data tools.
Use /convert/parquet-to-xlsx for a review workbook, then warn that schema metadata and row-group statistics are gone.
A legacy import only accepts comma-delimited files.
Use /convert/parquet-to-csv and audit timestamps, decimals, and nested fields that do not have CSV equivalents.
Streaming consumers need row-oriented JSON.
Use /convert/parquet-to-jsonl when one JSON object per row is easier for logs or model datasets.
Flat files are too slow for recurring analytics.
Use /convert/csv-to-parquet or /convert/jsonl-to-parquet after deciding types, nulls, and timestamp handling.
Database users want INSERT statements for a sample.
Use /convert/parquet-to-sql only for small extracts, then adjust database-specific types and indexes manually.