Curaduría open-source · Python-first · en español

El catálogo

Nº06 · Almacenamiento

Apache Parquet

El formato columnar que hace barata y rápida la analítica sobre archivos.

FormatoIntroData Engineer·Data Scientist

¿Qué es?

Apache Parquet es un formato de archivo columnar y binario, abierto, diseñado para almacenar datos tabulares de forma eficiente para analítica. A diferencia de un CSV —que guarda los datos fila por fila en texto— Parquet agrupa los valores por columna, añade compresión y guarda estadísticas (mínimos, máximos) de cada bloque.

El resultado: archivos mucho más pequeños y consultas mucho más rápidas. Es el formato de facto del almacenamiento analítico moderno: los data lakes, los lakehouses (Iceberg, Delta) y casi todos los motores OSS lo leen de forma nativa.

¿Para qué sirve?

  • Almacenar tablas para analítica. Es el destino natural de un pipeline de datos: pesa una fracción de lo que pesaría en CSV y se consulta más rápido.
  • Lectura selectiva (column pruning). Una query que usa 3 de 40 columnas lee solo esas 3 del disco. Sobre un CSV habría que leerlo entero.
  • Interoperar entre herramientas. pandas, Polars, DuckDB, Spark, Trino y los warehouses leen y escriben Parquet — es el lenguaje común para mover datos sin lock-in.
  • Base de los formatos de tabla. Iceberg y Delta Lake guardan sus datos como archivos Parquet por debajo, añadiendo encima transacciones y versionado.

¿Cuándo usarla / cuándo no?

Úsalo siempre que guardes datos para leerlos analíticamente: salidas de pipelines, capas intermedias de un lake, datasets que compartes entre herramientas. Casi siempre es mejor opción que CSV para volúmenes serios.

Piénsalo dos veces para:

  • Cargas transaccionales con escrituras/actualizaciones frecuentes fila a fila: una base como PostgreSQL es lo correcto. Parquet es para leer, no para mutar registro a registro.
  • Intercambio con humanos o herramientas que esperan texto (abrir en Excel, un script simple): un CSV es más universal para ese caso puntual.
  • Updates/deletes sobre el lake: si necesitas modificar datos ya escritos con garantías, sube un nivel a Iceberg o Delta (que usan Parquet por debajo).

Empieza en 1 minuto

Con DuckDB conviertes un CSV a Parquet y compruebas la diferencia, sin servidor:

pip install duckdb
import duckdb

# Escribe una tabla de ejemplo a Parquet (comprimido y columnar)
duckdb.sql("""
  COPY (SELECT * FROM (VALUES ('PE', 100), ('CL', 80)) AS t(pais, monto))
  TO 'ventas.parquet' (FORMAT parquet)
""")

# Lee solo la columna que necesitas — sin cargar el resto
print(duckdb.sql("SELECT pais FROM 'ventas.parquet'").df())

Trivia rápida — pon a prueba lo que acabas de leer.

¿Qué tanto sabes de Apache Parquet?

Documentación oficial

La fuente de verdad vive ahí. Acá orientamos; la profundidad la pones tú.

Abrir documentación oficial

Qué aprender después

Ver también

Nº06 · Actualizado 2026-06-25