Ir al contenido
  1. Posts/

CSV vs. Parquet vs. Arrow: Formatos de Almacenamiento Explicados

··272 palabras·2 mins·

📊 CSV vs. Parquet vs. Arrow: ¿Cuál usar para tus datos?

Si trabajás con datos tabulares en Python, tarde o temprano te vas a cruzar con estos tres formatos. ¿Sabés cuándo usar cada uno?

CSV — Simple y universal

  • Texto plano, una fila por línea
  • Compatible con Excel, pandas, bases de datos, cualquier herramienta
  • ❌ Sin esquema explícito: los tipos se infieren cada vez
  • ❌ Lento con datasets grandes: parsear texto es CPU-intensivo

Parquet — Para analytics a gran escala

  • Formato binario columnar: almacena todos los valores de cada columna juntas
  • ✅ Compresión excelente (Snappy, Gzip): archivos 5-10x más pequeños que CSV
  • ✅ Lee solo las columnas que necesitás (column pruning)
  • ✅ Esquema guardado: tipos preservados sin inferencia
  • Ideal para batch processing y millones/miles de millones de filas

Arrow — El formato en memoria

  • Columnar en RAM: diseñado para operaciones ultrarrápidas
  • ✅ Zero-copy reads: accedé a datos en disco sin cargarlos en memoria
  • ✅ Operaciones vectorizadas sobre columnas
  • ✅ Interoperable con pandas, Polars, Spark, PyArrow
  • En Hugging Face Datasets, todo dataset internamente es Arrow

🔍 Explicación en pocas palabras

“Columnar” significa que en lugar de guardar fila a fila (nombre1, edad1, ciudad1 / nombre2, edad2, ciudad2), se guardan todos los nombres juntos, todas las edades juntas. Esto acelera enormemente las consultas que solo necesitan algunas columnas y permite comprimir mejor los datos similares.

📌 Regla práctica: CSV para experimentos rápidos → Parquet para guardar tablas grandes → Arrow para entrenamiento rápido en memoria.

Más información en el link 👇

También publicado en LinkedIn.
Juan Pedro Bretti Mandarano
Autor
Juan Pedro Bretti Mandarano