---
title: "Parquet vs CSV"
description: "Parquet is a compressed, columnar binary file format optimized for analytics, while CSV is a plain-text, row-based format with no built-in schema or compression — Parquet is generally faster and smaller for analytical workloads, while CSV is simpler and universally readable."
canonical: "https://motherduck.com/glossary/parquet-vs-csv/"
related:
  - title: "Parquet | MotherDuck Docs"
    url: "https://motherduck.com/docs/integrations/file-formats/parquet/"
  - title: "Why CSV Files Won’t Die and How DuckDB Conquers Them"
    url: "https://motherduck.com/blog/csv-files-persist-duckdb-solution/"
  - title: "DuckLake Lakehouse: Getting Started to Going Fast | MotherDuck"
    url: "https://motherduck.com/videos/ducklake-lakehouse-getting-started/"
gated_asset:
  title: "DuckLake on MotherDuck"
  url: "https://motherduck.com/product/ducklake/"
---

# Parquet vs CSV

> Parquet is a compressed, columnar binary file format optimized for analytics, while CSV is a plain-text, row-based format with no built-in schema or compression — Parquet is generally faster and smaller for analytical workloads, while CSV is simpler and universally readable.

## Overview
CSV (comma-separated values) is a plain-text format that stores data row by row, with no embedded schema — every value is text, and types (integer, date, boolean) must be inferred or specified separately. Parquet is a binary, columnar format that stores values grouped by column, embeds the schema and per-column statistics, and compresses data far more effectively.

<glossary-callout guide="duckdb-book-brief" />

## Why the difference matters for analytics
Because Parquet groups data by column, a query that only needs a few columns out of many can skip reading the rest of the file entirely — CSV requires scanning every field of every row regardless of which columns a query uses. Parquet also stores min/max statistics per row group, so engines can skip whole chunks of data that can't match a filter. Combined with columnar compression (values in a column tend to be similar, so they compress well), Parquet files are typically a fraction of the size of the equivalent CSV and much faster to query.

## Where CSV still wins
CSV's advantages are simplicity and universality: any tool, spreadsheet, or human can open and read it directly, and it requires no special library to write. It's a reasonable choice for small files, one-off exports, or interchange with systems that don't support Parquet.

## Comparing them in DuckDB
DuckDB reads and writes both formats natively, and can convert between them directly:

```sql
-- Inspect a CSV's inferred schema and stats
SUMMARIZE FROM read_csv('sales.csv');

-- Convert CSV to compressed Parquet
COPY (FROM read_csv('sales.csv')) TO 'sales.parquet' (FORMAT parquet, COMPRESSION zstd);

-- Compare file sizes and query speed directly
SELECT COUNT(*) FROM read_parquet('sales.parquet') WHERE region = 'EU';
```

In practice, teams often use CSV for initial exports or manual inspection and convert to Parquet before running repeated analytical queries.