Saltar al contenido
Lakehouse LabLakehouse LabPreparación Databricks Data Engineer
Módulo 20 · Lección

For each task

Contenido abierto

Puedes leer todo sin registrarte. Solo crearemos un perfil anónimo cuando decidas guardar tu progreso.

Lección 2 de 5

For each task

Job parameters, task values y referencias dinámicas trasladan contexto entre tareas sin acoplarlas a estado de notebook.

Duración
17 min aprox.
Objetivo
Job parameters, task values y referencias dinámicas trasladan contexto entre tareas sin acoplarlas a estado de notebook.
Siguiente paso
Continuar con la siguiente lección
Ver detalles del módulo

Lakeflow Jobs avanzado: control flow y repairs

Orquesta decisiones, bucles y recuperaciones sin convertir el DAG en lógica opaca.

Al terminar podrás
  • Usar branching y for-each con límites
  • Aplicar retries y repairs correctamente
  • Transferir parámetros y task values
Ver fuentes y revisión

Metadatos editoriales

Última revisión
21 jul 2026
Nivel
Professional
Ruta relacionada
pipelines
Dominios blueprint
Debugging and Deploying · Lakeflow Jobs
Estado
Revisión editorial interna
Fuentes principales
Control the flow of tasks within Lakeflow Jobs · Databricks · Dynamic value references · Databricks
Reportar un error
02
Implementación

For each task

Job parameters, task values y referencias dinámicas trasladan contexto entre tareas sin acoplarlas a estado de notebook.

Mostrar prerrequisitos
Dificultad
Professional
Prerrequisitos
m19
Reportar un error en esta lección

Los job parameters describen entradas del run y se propagan a tareas compatibles. Una tarea puede publicar un valor pequeño mediante `dbutils.jobs.taskValues.set`; downstream lo referencia como `{{tasks.<task>.values.<key>}}`. Las referencias se sustituyen como texto, no evalúan expresiones.

Los task values sirven para contadores, rutas o listas pequeñas, no para transportar DataFrames. Los datos voluminosos se materializan en tablas/Volumes y se pasa un identificador. Un nombre mal escrito puede tratarse como literal, así que la validación del bundle y una prueba smoke son esenciales.

Modelo mental

Los parámetros describen intención de ejecución; los task values transportan resultados pequeños calculados durante esa ejecución; las referencias dinámicas enlazan ambos sin copiar estado a notebooks. Un job parameter como `business_date` o `environment` debe tener tipo y validación conceptual, aunque llegue como texto. Puede propagarse a tareas mediante configuración, mientras `dbutils.jobs.taskValues.set` publica un valor para una tarea downstream o un `If/else`. No es un almacén de datos: payloads grandes pertenecen a tablas, Volumes u object storage y se pasan por referencia. Las referencias `{{...}}` se resuelven por el servicio antes de ejecutar la tarea y algunas no fallan si se escriben mal, por lo que deben revisarse y probarse. Secretos nunca viajan como parámetros visibles. El contrato incluye default seguro, timezone, formato, origen y comportamiento de rerun para que un repair use el mismo intervalo lógico.

Job parameter

Entrada definida en el ámbito del Job que configura una ejecución y puede propagarse de forma consistente a múltiples tareas.

Centraliza fecha, entorno o modo y hace reproducibles runs normales, manuales, backfills y reparaciones.
Task value

Valor pequeño producido durante una tarea y expuesto por clave a condiciones o tareas posteriores dentro del mismo run.

Permite comunicar decisiones y referencias sin acoplar notebooks a variables globales o archivos temporales implícitos.
Referencia dinámica

Plantilla resuelta por Lakeflow Jobs con contexto del run, trigger, parámetros, tareas o metadatos disponibles oficialmente.

Conecta configuración declarativa con valores de ejecución, pero exige sintaxis y alcance verificados para evitar literales accidentales.
PythonPublicación de evidencia para una condición
invalid_rows = spark.table("main.ops.validation_results").where(
    "run_id = :run_id AND is_valid = false"
).count()

total_rows = spark.table("main.ops.validation_results").where(
    "run_id = :run_id"
).count()

ratio = invalid_rows / total_rows if total_rows else 1.0
dbutils.jobs.taskValues.set(key="invalid_ratio", value=ratio)

El downstream referencia `{{tasks.validate.values.invalid_ratio}}`; conserva el detalle de filas en una tabla, no en el task value.

Puntos clave

  • Job parameter identifica el run; task value comunica un resultado pequeño de upstream.
  • Referencias dinámicas usan doble llave y no ejecutan código.
  • Datos grandes se comparten mediante almacenamiento gobernado, no mediante valores del DAG.

Evita

  • Pasar miles de filas como JSON en un task value y alcanzar límites de tamaño.
  • Usar una referencia dinámica inexistente y no detectar que quedó como texto literal.

Recuerdo activo

¿Cómo consume downstream el valor `invalid_ratio` publicado por `validate`?

Borrador privado · solo en este navegador
5 lecciones pendientes

Vista de lectura · sin ejecución

Learn Databricks

Learn Databricks · commit 08c378c

README.md