Python para Ingenieros de Datos

Python para Ingeniería de datos

Técnicas avanzadas de ETL para principiantes

Foto de Boitumelo en Unsplash

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:

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!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Técnicas de muestreo y comparación prácticas, en Python

Estaba poniendo el árbol de Navidad con mi esposa. Fuimos al sótano, cogimos el árbol, lo llevamos arriba y empezamos...

Inteligencia Artificial

El (Largo) Cola Mueve al Perro Las Consecuencias Inesperadas del Arte Personalizado de la IA

La reciente presentación de Meta de Emu en el mundo de las películas generativas marca un punto de inflexión, un mome...

Inteligencia Artificial

Meet LLMWare Un marco de Inteligencia Artificial todo en uno para agilizar el desarrollo de aplicaciones basadas en LLM para aplicaciones de IA generativa

A pesar del gran interés en los Modelos de Lenguaje Grande LLM (por sus siglas en inglés) durante el último año, much...

Inteligencia Artificial

Fortaleciendo la industria de semiconductores de EE. UU.

Los fabricantes de chips de EE.UU. esperan el apoyo monetario del gobierno un año después de que se promulgara la leg...