Skip to content

Apache Parquet

Коротко:

Apache Parquet — columnar storage format, разработанный Twitter + Cloudera (2013), ASF top-level project. Default формат для analytics на data lake. Benefits: 10-100x compression vs CSV, column pruning (читать только нужные columns), predicate pushdown (фильтр применяется в reader). Write Spark/Pandas/DuckDB, read anywhere.

Ниже: подробности, пример, смежные термины, FAQ.

Попробовать бесплатно →

Подробности

  • Columnar: данные хранятся по колонкам, не по rows
  • Compression: Snappy, Gzip, ZSTD, LZ4 per-column
  • Encoding: dictionary, RLE, bit-packing, delta для efficient storage
  • Predicate pushdown: WHERE date > 2026-01-01 уровня reader, не scan
  • Schema embedded в file → self-describing

Пример

# Python (pandas)
import pandas as pd
df = pd.read_csv('sales.csv')
df.to_parquet('sales.parquet', compression='snappy')

# Read only needed columns (column pruning)
df = pd.read_parquet('sales.parquet', columns=['date', 'amount'])

# DuckDB — query parquet directly
duckdb.sql("SELECT SUM(amount) FROM 'sales.parquet' WHERE date > '2026-01-01'")

Смежные термины

Больше по теме

Часто задаваемые вопросы

Parquet vs CSV?

CSV: human-readable, row-oriented, no schema, no compression. Parquet: binary, columnar, schema embedded, 10-100x smaller. Для analytics всегда Parquet.

Parquet vs ORC?

Similar columnar formats. ORC: Hive ecosystem history, better indexing. Parquet: broader adoption (Spark default). 2026 — Parquet wins.

Size typical?

CSV 1 GB → Parquet 50-200 MB с Snappy compression (5-20x). ZSTD даёт 2-3x лучше но CPU-cost.