Compartilhe informações entre a tarefa em um Databricks Job
O senhor pode usar valores de tarefa para passar parâmetros arbitrários entre tarefas em um trabalho Databricks. O senhor passa valores de tarefa usando a subutilidade taskValues em Databricks utilidades. O subutilitário taskValues fornece um API simples que permite que a tarefa produza valores que podem ser referenciados em tarefas subsequentes, facilitando a criação de fluxos de trabalho mais expressivos. Por exemplo, o senhor pode comunicar identificadores ou métricas, como informações sobre a avaliação de um modelo do machine learning, entre diferentes tarefas dentro da execução de um trabalho. Cada tarefa pode definir e obter vários valores de tarefa. Os valores de tarefa podem ser definidos e recuperados no site Python Notebook.
Observação
Agora o senhor pode usar referências de valores dinâmicos em seu Notebook para fazer referência aos valores de tarefa definidos na tarefa upstream. Por exemplo, para fazer referência ao valor com o key name
definido pela tarefa Get_user_data
, use {{tasks.Get_user_data.values.name}}
. Como eles podem ser usados com vários tipos de tarefa, a Databricks recomenda o uso de referências de valor dinâmico em vez de dbutils.jobs.taskValues.get
para recuperar o valor da tarefa programaticamente.
Usando valores de tarefa
A subutilidade taskValues fornece dois comandos: dbutils.jobs.taskValues.set()
para definir uma variável e dbutils.jobs.taskValues.get()
para recuperar um valor. Suponha que o senhor tenha duas tarefas de Notebook: Get_user_data
e Analyze_user_data
e queira passar o nome e a idade de um usuário da tarefa Get_user_data
para a tarefa Analyze_user_data
. O exemplo a seguir define o nome e a idade do usuário na tarefa Get_user_data
:
dbutils.jobs.taskValues.set(key = 'name', value = 'Some User')
dbutils.jobs.taskValues.set(key = "age", value = 30)
key
é o nome do valor da tarefa key. Esse nome deve ser exclusivo da tarefa.value
é o valor para a chave desse valor de tarefa. Este comando deve ser capaz de representar o valor internamente no formato JSON. O tamanho da representação JSON do valor não pode exceder 48 KiB.
O exemplo a seguir obtém os valores na tarefa Analyze_user_data
:
dbutils.jobs.taskValues.get(taskKey = "Get_user_data", key = "age", default = 42, debugValue = 0)
dbutils.jobs.taskValues.get(taskKey = "Get_user_data", key = "name", default = "Jane Doe")
taskKey
é o nome da tarefa de trabalho que define o valor. Se o comando não conseguir encontrar essa tarefa, será gerado umValueError
.key
é o nome do valor da tarefa key. Se o comando não conseguir encontrar esse valor de tarefa key, será gerado umValueError
(a menos quedefault
seja especificado).default
é um valor opcional retornado sekey
não puder ser encontrado.default
não pode serNone
.debugValue
é um valor opcional que é retornado se você tentar obter o valor da tarefa de dentro de um notebook que está sendo executado fora de um job. Isso pode ser útil durante a depuração quando você quiser executar o notebook manualmente e retornar algum valor em vez de gerar umTypeError
por padrão.debugValue
não pode serNone
.
Como um exemplo mais complexo de contexto de compartilhamento entre tarefas, suponha que o senhor tenha um aplicativo que inclua vários modelos do machine learning para prever a renda de um indivíduo com base em vários atributos pessoais e uma tarefa que determine o melhor modelo a ser usado com base no resultado das três tarefas anteriores. Os modelos são executados por três tarefas denominadas Logistic_Regression
, Decision_Tree
e Random_Forest
, e a tarefa Best_Model
determina o melhor modelo a ser usado com base nos resultados das três tarefas anteriores.
A precisão de cada modelo (quão bem o classificador prevê a renda) é passada em um valor de tarefa para determinar o algoritmo de melhor desempenho. Por exemplo, o Notebook de regressão logística associado à tarefa Logistic_Regression
inclui o seguinte comando:
dbutils.jobs.taskValues.set(key = "model_performance", value = result)
Cada tarefa do modelo define um valor para model_performance
key. A tarefa Best_Model
lê o valor de cada tarefa e usa esse valor para determinar o modelo ideal. O exemplo a seguir lê o valor definido pela tarefa Logistic_Regression
:
logistic_regression = dbutils.jobs.taskValues.get(taskKey = "Logistic_Regression", key = "model_performance")
visualizar valores de tarefa
Para view o valor de um valor de tarefa após a execução de uma tarefa, acesse o histórico de execução da tarefa. Os resultados do valor da tarefa são exibidos no painel Output (Saída ).