¿Qué es Apache Parquet? Guía para principiantes

· Parquet Explorer
parquetprincipiantesingenieria-de-datos

Si trabajas con datos — ya sea como analista, ingeniero de datos o desarrollador backend — tarde o temprano te vas a topar con archivos .parquet. Y cuando eso pase, vas a querer entender por qué todo el mundo los recomienda por encima de los clásicos CSV o JSON.

En esta guía te explico desde cero qué es Apache Parquet, cómo funciona por dentro y cómo trabajar con este formato de manera productiva desde el primer día.

El problema que resuelve Parquet

Imagina que tienes una tabla con 50 columnas y 100 millones de filas. Solo necesitas analizar dos columnas: fecha y monto_venta. Con un CSV, tendrías que leer toda la tabla — las 50 columnas, línea por línea — para extraer solo esas dos. Es como tener que leer un libro entero para encontrar un párrafo.

Parquet resuelve esto almacenando los datos por columna en lugar de por fila. Así, cuando solo necesitas dos columnas, el motor de lectura puede saltar directamente a los bloques que contienen esa información e ignorar el resto. El resultado: consultas mucho más rápidas y un uso de memoria drásticamente menor.

¿Qué es exactamente Apache Parquet?

Apache Parquet es un formato de almacenamiento columnar de código abierto, diseñado para el ecosistema de big data. Fue creado originalmente por Twitter y Cloudera en 2013, y hoy es un proyecto de la Apache Software Foundation.

Sus características principales son:

  • Almacenamiento columnar: los valores de cada columna se guardan juntos en disco.
  • Compresión eficiente: al agrupar valores del mismo tipo, los algoritmos de compresión funcionan mucho mejor.
  • Esquema integrado: el archivo lleva su propio esquema (tipos de dato, nombres de columna, incluyendo estructuras anidadas como STRUCT, LIST y MAP), así que no hay ambigüedad.
  • Compatibilidad amplia: lo leen Spark, DuckDB, Pandas, Polars, Apache Arrow, BigQuery, Athena, Snowflake… prácticamente todo.

Formato columnar vs. formato por filas

En un formato por filas (como CSV), cada fila completa va una detrás de otra: 1, María, Lima, 28 / 2, Carlos, Bogotá, 35. Ideal para insertar registros, pero ineficiente si quieres leer solo una columna.

En un formato columnar (como Parquet), todos los valores de cada columna se agrupan: todos los IDs juntos, todos los nombres juntos, todas las edades juntas. Si necesitas calcular el promedio de edad, solo lees ese bloque. Las demás columnas ni se tocan.

La anatomía de un archivo Parquet

Un archivo Parquet divide sus filas en row groups, que permiten lectura paralela y predicado pushdown (saltarse bloques enteros que no cumplen un filtro, gracias a estadísticas min/max por columna). Dentro de cada row group, los datos de cada columna se almacenan en column chunks, divididos a su vez en páginas de ~1 MB.

Al final del archivo hay un footer con toda la metadata: esquema, ubicaciones, y estadísticas por columna por row group. Es lo primero que lee cualquier motor para planificar el acceso a los datos.

Compresión: por qué Parquet ocupa tan poco

Una de las ventajas más visibles de Parquet es su tamaño. Un archivo CSV de 1 GB puede quedar en 100-200 MB en Parquet. ¿Cómo?

  1. Los valores similares se agrupan: al estar los datos de cada columna juntos, los algoritmos de compresión encuentran muchos más patrones repetidos.
  2. Codificación (encoding): antes de comprimir, Parquet aplica codificaciones especializadas como dictionary encoding (para columnas con pocos valores únicos), run-length encoding (para secuencias repetidas) y delta encoding (para secuencias numéricas incrementales).
  3. Algoritmos de compresión: encima de la codificación, se aplica un algoritmo como Snappy (rápido), GZIP (mejor ratio) o ZSTD (buen balance entre ambos).

El resultado es que leer un archivo Parquet no solo es más rápido por el formato columnar, sino que también hay menos datos que transferir desde el disco o la red.

¿Cuándo usar Parquet?

Parquet es la mejor opción cuando:

  • Haces análisis de datos: consultas agregadas, filtros, agrupaciones. Todo lo que típicamente harías con SQL o con pandas.
  • Tienes datasets medianos o grandes: desde unos miles de filas hasta miles de millones. A partir de unos pocos megabytes, la ventaja de Parquet sobre CSV se vuelve notable.
  • Necesitas un formato que preserve tipos: Parquet sabe distinguir entre un entero, un decimal, una fecha y un string. Con CSV, todo es texto.
  • Trabajas en un data lake o pipeline de datos: Parquet es el formato estándar en herramientas como Spark, Databricks, dbt y la mayoría de los data warehouses en la nube.

Parquet no es ideal cuando:

  • Necesitas que cualquier persona abra el archivo sin herramientas especializadas (aunque esto cada vez es menos problema).
  • Trabajas con datos que cambian fila por fila constantemente (bases de datos transaccionales son mejor opción).

Parquet Explorer: la navaja suiza para trabajar con Parquet

Uno de los mitos sobre Parquet es que necesitas Python, Spark o herramientas complicadas para trabajar con él. Eso ya no es cierto.

Parquet Explorer es una plataforma completa para archivos Parquet que corre 100% en tu navegador usando DuckDB-WASM. Tus datos nunca salen de tu máquina. Y va mucho más allá de solo “ver” un archivo:

  • Consultas SQL completas: escribe cualquier query con la potencia de DuckDB — joins, window functions, CTEs, todo. Incluye sugerencias de consultas contextuales basadas en tu tabla y un historial de queries para no perder tu trabajo.
  • Exploración del esquema: visualiza la estructura completa incluyendo tipos anidados (STRUCT, LIST, MAP) en un árbol interactivo.
  • Inspector de metadata: examina row groups, codecs de compresión, estadísticas por columna (min/max, conteo de nulos, valores distintos).
  • Perfilador de datos: obtén estadísticas por columna, histogramas de distribución y detección automática de tipos semánticos (emails, URLs, UUIDs, IPs, teléfonos) con un puntaje de calidad de datos.
  • Conversión de formatos: convierte CSV, TSV, JSON y JSONL a Parquet eligiendo la compresión que prefieras (Snappy, Zstd, Gzip). Y exporta a CSV, JSON o Parquet.
  • Creación y edición: crea archivos Parquet desde cero definiendo tu esquema, o edita archivos existentes con edición inline de celdas, y la posibilidad de agregar o eliminar filas y columnas.
  • Tabla virtualizada: maneja millones de filas sin que el navegador se congele.

Es una forma muy práctica de familiarizarte con el formato sin configurar nada. Y para el trabajo diario, se convierte en la herramienta a la que vuelves constantemente porque resuelve todo en un solo lugar.

Conclusión

Apache Parquet se convirtió en el estándar de facto para almacenar datos analíticos por buenas razones: es compacto, rápido de leer, preserva los tipos de dato y es compatible con prácticamente todo el ecosistema moderno de datos.

Si vienes del mundo CSV, la transición es más fácil de lo que parece. Con herramientas como Parquet Explorer que te permiten no solo abrir sino consultar, perfilar, convertir, crear y editar archivos Parquet directamente desde el navegador, la barrera de entrada prácticamente desaparece. Y una vez que pruebes las ventajas de un formato columnar — especialmente en datasets de cierto tamaño — es difícil volver atrás.