Puedes leer todo sin registrarte. Solo crearemos un perfil anónimo cuando decidas guardar tu progreso.
Lección 1 de 5
Transformaciones y acciones
Las transformaciones construyen un plan lógico; las acciones lo ejecutan y materializan un resultado.
- Duración
- 17 min aprox.
- Objetivo
- Las transformaciones construyen un plan lógico; las acciones lo ejecutan y materializan un resultado.
- Siguiente paso
- Continuar con la siguiente lección
Ver detalles del módulo
DataFrames, transformaciones y datos complejos
Domina las operaciones que aparecen en ETL real: joins, arrays, structs, ventanas y deduplicación.
- Transformar columnas y filas con funciones nativas
- Manipular arrays, maps y structs
- Combinar y deduplicar datasets de forma determinista
01Modelo mentalTransformaciones y acciones
Las transformaciones construyen un plan lógico; las acciones lo ejecutan y materializan un resultado.
+
Transformaciones y acciones
Las transformaciones construyen un plan lógico; las acciones lo ejecutan y materializan un resultado.
DataFrames son inmutables: select, filter o withColumn devuelven un nuevo plan sin leer todos los datos inmediatamente. Catalyst puede reorganizar y simplificar ese plan antes de ejecutarlo.
count, collect, write y display son acciones. Repetir acciones sobre el mismo linaje puede recalcularlo; cache solo compensa si hay reutilización medida y memoria suficiente.
Modelo mental
La API DataFrame es perezosa: una transformación describe una nueva relación y una acción exige un resultado. Spark no procesa fila por fila al escribir select, filter o join; acumula un plan lógico que Catalyst puede reorganizar. count, collect, write o una visualización desencadenan un job que materializa parte del linaje. Esta separación permite pushdown, poda de columnas y elección de joins, pero también sorprende cuando una acción repetida recalcula todo. Cache solo tiene sentido si el mismo resultado costoso se reutiliza y cabe con seguridad. Para razonar sobre rendimiento, identifica dónde se define el plan, dónde nace una acción y qué fronteras de shuffle dividen stages.
Operación perezosa que produce un nuevo DataFrame y amplía el plan lógico.
Permite componer trabajo antes de que Spark elija cómo ejecutarlo.Operación que solicita un resultado y desencadena la ejecución del plan necesario.
Marca el punto donde aparecen coste, jobs y errores ligados a datos.Cadena de dependencias de transformaciones necesaria para recomputar un DataFrame.
Explica recalculo, recuperación y cuándo una caché puede aportar valor.paid = orders.filter("status = 'paid'").select("order_id", "amount")
paid.explain("formatted")
rows = paid.count()explain inspecciona el plan; count inicia la ejecución.
Puntos clave
- Transformaciones son lazy
- Acciones disparan jobs
- Cache es una decisión medida
Evita
- Usar collect sobre un dataset grande
- Cachear cada DataFrame por costumbre
Recuerdo activo