Herramientas

Diferencias entre Apache Arrow y Parquet

Apache Arrow y Parquet son dos formatos modernos para con los que es posible conseguir archivos más pequeños que CSV, además de unos menores tiempos de lectura y escritura. Veamos a continuación las diferencias que existen entre Apache Arrow y Parquet.

Apache Arrow

Apache Arrow es una biblioteca, disponible para múltiples lenguajes de programación, que proporciona estructuras de datos en columnas para su uso en aplicaciones de análisis de datos. El uso de estructuras tabulares ofrece ciertas ventajas frente a almacenar los datos en filas. Permitiendo un acceso aleatorio mucho más rápido a cada una de las celdas ya que estas se encuentran al lado de la anterior. Lo que hace más eficiente las tareas de iteración sobre los elementos de una columna.

Pero, si Apache Arrow es una biblioteca de software ¿qué son los archivos Arrow? En Apache Arrow también se define un protocolo binario de serialización para empaquetar colecciones de matrices Arrow y emplearlas para la comunicación entre procesos. Pudiéndose usar este tanto para enviar los datos a otro proceso como para almacenar en disco y posteriormente importar en memoria en otro sistema.

Parquet

Por otro lado, Parquet es un formato de archivo en columnas para la serialización de datos. Al leer un archivo Parquet es necesario descomprimir y decodificar su contenido en algún tipo de estructura de datos en memoria. No proporcionando, a diferencia de Apache Arrow, una estructura de datos para almacenar esta en memoria, sino que el contenido del archivo ha de ser traducido a una nativa del lenguaje, como puede ser el caso de los objetos DataFrame.

El formato Parquet está diseñado específicamente para reducir el tamaño de las operaciones de lectura y escritura. Lo que se consigue a costa de utilizar la CPU para codificar y decodificar los datos.

Diferencia entre Apache Arrow y Parquet

Así que, una vez visto en qué consiste cada uno de los archivos, se puede ver que en muchas aplicaciones el uso de Arrow y Parquet es indiferente. Aunque es necesario tener algunas cosas en mente a la hora de seleccionar uno u otro.

  • Parquet se ha diseñado desde el principio para la creación de archivos, es decir, se espera que cualquier programa futuro que pueda leer este formato lo importara sin problemas. Mientras que Apache Arrow es una librería que proporciona estructura de datos.
  • El proceso de lectura es generalmente más costoso en el caso de Parquet, ya que los datos se deben descomprimir y decodificar para su uso en memoria. Por otro lado, en el caso de Arrow, no es necesario decodificar los datos.
  • Los archivos Parquet suelen ser mucho más pequeños que el protocolo Arrow en disco debido a los esquemas de codificación de datos que utiliza Parquet.

Conclusiones

Apache Arrow y Parquet son dos excelentes opciones para trabajar con grandes conjuntos de datos. Reduciendo el tamaño de los archivos frente a las soluciones tradicionales como los archivos CSV. Aunque, si únicamente queremos almacenar los datos en archivos y seguir usando nuestras estructuras de datos, la mejor opción es usar el formato Parquet.

Imagen de greissdesign en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Por Qué las Contraseñas Largas son más Seguras que las Complejas

"Tu contraseña debe tener al menos 8 caracteres, una mayúscula, un número y un símbolo…

2 días ago

Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring

Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la…

4 días ago

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

1 semana ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

2 semanas ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

2 semanas ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

3 semanas ago

This website uses cookies.