Usar os valores da tarefa para passar informações entre a tarefa

Os valores de tarefa referem-se à subutilidade Databricks utilidades taskValues, que permite que o senhor passe valores arbitrários entre tarefas em um trabalho Databricks. Consulte o subutilitário taskValues (dbutils.Job.taskValues).

O senhor especifica um par key-valor usando dbutils.jobs.taskValues.set() em uma tarefa e, em seguida, pode usar o nome da tarefa e key para fazer referência ao valor nas tarefas subsequentes.

Observação

The subutilities dbutils.jobs.taskValues.set() and dbutils.jobs.taskValues.get() are only available in Python notebooks. You can reference task values using dynamic value references for all tasks that support parameters. See Reference task values.

Definir valores de tarefa

Defina os valores de tarefa no Python Notebook usando a subutilidade dbutils.jobs.taskValues.set().

A chave de valor da tarefa deve ser strings. Cada key deve ser exclusivo se o senhor tiver vários valores de tarefa definidos em um Notebook.

You can manually or programmatically assign task values to keys. Only values that can be expressed as valid JSON are permitted. The size of the JSON representation of the value cannot exceed 48 KiB.

Por exemplo, o exemplo a seguir define uma cadeia de caracteres estática para key fave_food:

dbutils.jobs.taskValues.set(key = "fave_food", value = "beans")

O exemplo a seguir usa um parâmetro de tarefa do Notebook para consultar todos os registros de um determinado número de pedido e retornar o status atual do pedido e a contagem total de registros:

from pyspark.sql.functions import col

order_num = dbutils.widgets.get("order_num")

query = (spark.read.table("orders")
  .orderBy(col("updated"), ascending=False)
  .select(col("order_status"))
  .where(col("order_num") == order_num)
)

dbutils.jobs.taskValues.set(key = "record_count", value = query.count())
dbutils.jobs.taskValues.set(key = "order_status", value = query.take(1)[0][0])

O senhor pode passar listas de valores usando esse padrão e depois usá-las para coordenar a lógica downstream, como para cada tarefa. Ver execução a parameterized Databricks Job tarefa in a loop.

O exemplo a seguir extrai os valores distintos do ID do produto para uma lista Python e define isso como um valor de tarefa:

prod_list = list(spark.read.table("products").select("prod_id").distinct().toPandas()["prod_id"])

dbutils.jobs.taskValues.set(key = "prod_list", value = prod_list)

Valores de referência da tarefa

A Databricks recomenda fazer referência aos valores da tarefa como parâmetros da tarefa configurados usando o padrão de referência de valor dinâmico {{tasks.<task_name>.values.<value_name>}}.

Por exemplo, para fazer referência ao valor da tarefa com o key prod_list de uma tarefa chamada product_inventory, use a sintaxe {{tasks.product_inventory.values.prod_list}}.

Consulte Configurar parâmetros de tarefa e O que é uma referência de valor dinâmico?

Use dbutils.jobs.taskValues.get

A sintaxe dbutils.jobs.taskValues.get() requer a especificação do nome da tarefa upstream. Essa sintaxe não é recomendada, pois o senhor pode usar os valores da tarefa em várias tarefas downstream, o que significa que são necessárias várias atualizações se o nome da tarefa for alterado.

Usando essa sintaxe, você pode especificar opcionalmente um valor default e debugValue. O valor default é usado se o key não puder ser encontrado. O debugValue permite que o senhor defina um valor estático a ser usado durante o desenvolvimento e teste manual do código no Notebook antes de programar o Notebook como uma tarefa.

The following example gets the value for the key order_status set in a task name order_lookup. The value Delivered is returned only when running the notebook interactively.

order_status = dbutils.jobs.taskValues.get(taskKey = "order_lookup", key = "order_status", debugValue = "Delivered")

Observação

Databricks não recomenda a configuração de valores em default, pois eles podem ser difíceis de solucionar e evitar mensagens de erro esperadas devido à falta de uma chave ou ao nome incorreto da tarefa.

visualizar valores de tarefa

O valor retornado de um valor de tarefa para cada execução é exibido no painel Output (Saída ) dos detalhes da execução da tarefa. Veja a história da tarefa execução.