Módulo: Producción y optimización
Este módulo forma parte del curso de PySpark. .
Llevar aplicaciones PySpark a producción implica dominar técnicas de particionamiento, optimización de rendimiento y despliegue en clúster. La eficiencia de una aplicación Spark depende en gran medida de cómo se distribuyen los datos y de las decisiones de configuración tomadas durante el desarrollo.
El particionamiento controla cómo se distribuyen los datos entre los executors. repartition(n) redistribuye todos los datos con un shuffle completo (útil para aumentar el paralelismo), mientras que coalesce(n) reduce particiones sin shuffle (más eficiente para escribir ficheros). El partitionBy en la escritura organiza los datos en directorios por columna, acelerando las lecturas posteriores con predicado pushdown:
# Escribir con particionamiento por año y mes
df.write \
.mode("overwrite") \
.partitionBy("anio", "mes") \
.parquet("s3://mi-bucket/datos/")
Las broadcast variables comparten datos de solo lectura (tipicamente tablas de dimensión pequeñas) con todos los executors sin enviarlos en cada tarea. Los accumulators permiten agregar métricas desde los executors al driver de forma segura. La función broadcast() también optimiza los joins cuando una de las tablas es pequeña, evitando un shuffle costoso.
La Adaptive Query Execution (AQE) en Spark 3.x ajusta automáticamente el plan de ejecución en tiempo real según las estadísticas reales de los datos. spark-submit es la herramienta de línea de comandos para enviar aplicaciones a clústeres Standalone, YARN o Kubernetes con control total sobre recursos y configuración.
Otros módulos de este curso
Producción y optimización
Todos los módulos del curso
Navega entre los módulos de PySpark
Producción y optimización
Estás aquíExplora más sobre PySpark
Descubre más recursos de PySpark
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, PySpark es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.