¿Qué formato de datos utilizar para tu proyecto de Big Data?

¿Qué formato de datos utilizar en tu proyecto de Big Data?

Pickle, Parquet, CSV, Feather, HDF5, ORC, JSON: ¿Cuál deberías usar y por qué?

Imagen de Maarten van den Heuvel — UnsplashImagen de Maarten van den Heuvel — Unsplash

Elegir el formato de datos adecuado es crucial en proyectos de Ciencia de Datos, impactando desde la velocidad de lectura/escritura de datos hasta el consumo de memoria y la interoperabilidad. Este artículo explora siete formatos populares de serialización/deserialización en Python, centrándose en su velocidad y uso de memoria.

A través del análisis, también veremos cómo podemos utilizar el perfilado en Python (usando el módulo integrado cProfile) y cómo podemos obtener estadísticas sobre el uso de memoria para archivos específicos en tu sistema de archivos (usando el módulo Python os).

Por supuesto, cada proyecto tiene sus especificidades, más allá de la velocidad y el uso de memoria. Pero sacaremos algunas tendencias, que esperamos sean útiles para arrojar luz sobre qué formato podemos elegir para un proyecto dado.

Comprensión de la Serialización y Deserialización

La serialización es el proceso de guardar un objeto (en Python, por ejemplo, un DataFrame de pandas) en un formato que se puede guardar en un archivo para su posterior recuperación. La deserialización es el proceso inverso.

Un dataframe es un objeto de Python y no se puede persistir tal cual. Necesita ser traducido a un archivo para poder cargar este objeto en una etapa posterior.

Cuando guardas un dataframe, “serializas” los datos. Y cuando lo cargas nuevamente, “deserializas” o lo traduces de nuevo a un formato legible (aquí, legible por Python).

Ciertos formatos se utilizan ampliamente porque son legibles para los humanos, como JSON o CSV. Estos dos formatos también se utilizan porque son independientes del lenguaje. Al igual que protocol buffers, que fueron desarrollados originalmente por Google. JSON y Protocol buffer también son populares para las API y permiten enviar datos entre diferentes servicios escritos en diferentes lenguajes.

Por otro lado, algunos formatos, como el pickle de Python, son específicos del lenguaje y no son ideales para transferir datos entre servicios en diferentes lenguajes de programación. Por ejemplo, para un caso de uso de aprendizaje automático, si un repositorio entrena un modelo y lo serializa en pickle, este archivo solo podrá leerse desde Python. Entonces, si la API que…

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Principales herramientas para simplificar y estandarizar el aprendizaje automático

La inteligencia artificial y el aprendizaje automático son dos líderes innovadores a medida que el mundo se beneficia...

Inteligencia Artificial

Los robots submarinos podrían abrir paso a un futuro de alta tecnología para la minería en aguas profundas

Renee Grogan, desarrolladora de soluciones mineras en Impossible Metals, visualiza a los robots submarinos como clave...

Inteligencia Artificial

La Inteligencia Artificial está controlando la lucha contra el robo de paquetes de UPS

UPS y otras grandes empresas de logística están implementando tecnología para reducir el robo de paquetes en los porc...

Inteligencia Artificial

¿Puede (Muy) Simple Matemáticas Informar RLHF Para Modelos de Lenguaje Grandes LLMs? ¡Este artículo de IA dice que sí!

Incorporar la entrada humana es un componente clave de las recientes mejoras impresionantes en las capacidades de los...

Inteligencia Artificial

Ajustando la Tela de la IA Generativa FABRIC es un enfoque de IA que personaliza los modelos de difusión con retroalimentación iterativa

La inteligencia artificial generativa es un término con el que todos estamos familiarizados en la actualidad. Han ava...