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
As subutilidades dbutils.jobs.taskValues.set()
e dbutils.jobs.taskValues.get()
só estão disponíveis no site Python Notebook. O senhor pode fazer referência a valores de tarefa usando referências de valores dinâmicos para todas as tarefas que suportam parâmetros. Consulte Valores de tarefa de referência.
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.
O senhor pode atribuir manual ou programaticamente valores de tarefa à chave. Somente os valores que podem ser expressos como JSON válido são permitidos. O tamanho da representação JSON do valor não pode exceder 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.
O exemplo a seguir obtém o valor para key order_status
definido em um nome de tarefa order_lookup
. O valor Delivered
é retornado somente quando o Notebook é executado interativamente.
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.