Cómo automatizar los pipelines de PySpark en AWS EMR con Airflow
Automatización de pipelines de PySpark en AWS EMR con Airflow.
Optimizando la orquestación de flujos de trabajo de big data

Introducción
En el panorama dinámico de la ingeniería y análisis de datos, construir tuberías escalables y automatizadas es fundamental.
Los entusiastas de Spark que han estado trabajando con Airflow durante un tiempo podrían preguntarse:
¿Cómo ejecutar un trabajo de Spark en un clúster remoto utilizando Airflow?
¿Cómo automatizar las tuberías de Spark con AWS EMR y Airflow?
En este tutorial vamos a integrar estas dos tecnologías mostrando cómo:
- Una Derivación Accesible de la Regresión Lineal
- Conoce a CoDeF Un modelo de Inteligencia Artificial (IA) que te per...
- Arte e identidad El vínculo profundo entre la autorelevancia y el a...
- Configurar y obtener parámetros esenciales desde la interfaz de Airflow.
- Crear funciones auxiliares para generar automáticamente el comando preferido
spark-submit
. - Utilizar el método
EmrAddStepsOperator()
de Airflow para construir una tarea que envíe y ejecute un trabajo de PySpark en EMR - Utilizar el método
EmrStepSensor()
de Airflow para monitorear la ejecución del script.
El código utilizado en este tutorial está disponible en GitHub.
Requisitos previos
- Una cuenta de AWS con un bucket de S3 y un clúster de EMR configurados en la misma región (en este caso
eu-north-1
). El clúster de EMR debe estar disponible y en estadoWAITING
. En nuestro caso, se ha llamadoemr-cluster-tutorial
:

- Algunos datos de
balances
simulados ya disponibles en el bucket deS3
bajo la carpetasrc/balances
. Los datos se pueden generar y escribir en la ubicación utilizando el script de productor de datos. - Los
JARs
necesarios ya deberían haberse descargado de Maven y estar disponibles en el bucket deS3
. - Docker instalado y en ejecución en la máquina local con 4-6 GB de memoria asignada.
Arquitectura
El objetivo es escribir algunos datos simulados en formato parquet
en un bucket de S3
y luego construir un DAG
que:
- Obtenga la configuración requerida desde la interfaz de Airflow;
- Suba un script de
pyspark
al mismo bucket deS3
;