Python para Ingenieros de Datos
Python para Ingeniería de datos
Técnicas avanzadas de ETL para principiantes
En esta historia hablaré sobre técnicas avanzadas de ingeniería de datos en Python. Sin duda, Python es el lenguaje de programación más popular para el manejo de datos. Durante mis casi doce años de carrera en ingeniería de datos, me he encontrado con varias situaciones en las que el código presentaba problemas. Esta historia es un resumen breve de cómo los resolví y aprendí a escribir un código mejor. Mostraré algunas técnicas que hacen que nuestros ETL sean más rápidos y ayudan a mejorar el rendimiento de nuestro código.
Comprensiones de lista
Imagina que estás recorriendo una lista de tablas. Normalmente, haríamos esto:
data_pipelines = ['p1','p2','p3']processed_tables = []for table in data_pipelines: processed_tables.append(table)
Pero en lugar de eso, podríamos usar comprensiones de lista. No solo son más rápidas, sino que también reducen el código y lo hacen más conciso:
processed_tables = [table for table in data_pipelines]
Por ejemplo, recorrer un archivo muy grande con datos para transformar (ETL) cada fila nunca ha sido tan fácil:
- CountVectorizer para extraer características de textos en Python, en detalle
- Nueve reglas para validar formalmente algoritmos de Rust con Dafny (Parte 2)
- ¡Oh, ¿Querías decir Gestionar el cambio?
def etl(item): # Realiza alguna transformación de datos aquí return json.dumps(item)data = u"\n".join(etl(item) for item in json_data)
Las comprensiones de lista son extremadamente útiles para el procesamiento de ETL de archivos de datos grandes. Imagina un archivo de datos que necesitamos transformar en un formato delimitado por saltos de línea. Intenta ejecutar este ejemplo en tu entorno de Python:
import ioimport jsondef etl(item): return json.dumps(item)# Archivo de texto cargado como un blobblob = """ [{"id":"1","first_name":"John"},{"id":"2","first_name":"Mary"}]"""json_data = json.loads(blob)data_str = u"\n".join(etl(item) for item in json_data)print(data_str)data_file = io.BytesIO(data_str.encode())# Este archivo de datos está listo para BigQuery como JSON delimitado por saltos de líneaprint(data_file)
La salida será un JSON delimitado por saltos de línea. Este es un formato estándar para los datos en el almacén de datos de BigQuery y está listo para cargarse en la tabla:
{"id": "1", "first_name": "John"}{"id": "2", "first_name": "Mary"}<_io.BytesIO object at 0x10c732430>
Generadores
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- El Lado No Contado de RAG Abordando sus Desafíos en Búsquedas Específicas de Dominio
- Comprendiendo la retención con Gradio
- Reformando la memoria del modelo sin necesidad de volver a entrenarlo
- QLoRA Entrenando un Modelo de Lenguaje Grande en una GPU de 16GB.
- Objetivo De la pesadilla de Metaverso al éxito de la IA
- Integrando la IA generativa y el aprendizaje por refuerzo para el auto-mejoramiento
- 10 Mejores Herramientas de Administrador de Contraseñas (Octubre 2023)