Acessar valores de parâmetros de uma tarefa
Este artigo descreve como acessar os valores de parâmetros do código em sua tarefa, incluindo o Databricks Notebook, scripts Python e arquivos SQL.
Os parâmetros incluem parâmetros definidos pelo usuário, valores de saída da tarefa upstream e valores de metadados gerados pelo Job. Consulte Parameterize Job.
Embora os detalhes variem de acordo com o tipo de tarefa, há quatro métodos comuns usados para fazer referência a valores de parâmetros do código-fonte:
- Databricks utilidades widgets
- Sintaxe de parâmetro nomeado do SQL
- Referências de valores dinâmicos
- Argumentos de código
Em cada um desses casos, o senhor faz referência ao key do parâmetro para acessar seu valor. O endereço key às vezes é chamado de nome do parâmetro.
Usar dbutils
no código em um Notebook
Notebook O código executado em uma tarefa pode acessar os valores dos parâmetros com a biblioteca dbutils. O exemplo a seguir mostra como usar dbutils
em Python para obter o valor de um parâmetro de tarefa year_param
que é passado para a tarefa do Notebook.
# Retrieve a job-level parameter
year_value = dbutils.widgets.get("year_param")
# Use the value in your code
display(babynames.filter(babynames.Year == year_value))
Os parâmetros são acessados pelo nome. Se o senhor tiver parâmetros de tarefa e parâmetros de trabalho com o mesmo nome, os parâmetros de trabalho serão obtidos.
O código acima produz um erro quando executado em um Notebook autônomo e não como parte de um trabalho, pois os parâmetros não são enviados para um Notebook autônomo. O senhor pode definir um default para o parâmetro year_param
com o seguinte código:
# Set a default (for when not running in a job)
dbutils.widgets.text("year_param", "2012", "Year Parameter")
# Retrieve a job-level parameter (will use default if it doesn't exist)
year_value = dbutils.widgets.get("year_param")
# Use the value in your code
display(babynames.filter(babynames.Year == year_value))
Embora isso seja útil para testes fora de um trabalho, também tem a desvantagem de ocultar quando os parâmetros da tarefa ou do trabalho não estão configurados corretamente.
Use parâmetros nomeados em um SQL Notebook
Ao executar o site SQL em uma tarefa do Notebook, o senhor pode usar a sintaxe de parâmetro nomeado para acessar os parâmetros da tarefa. Por exemplo, para acessar um parâmetro de tarefa chamado year_param
, o senhor poderia obter seu valor usando :year_param
na consulta:
SELECT *
FROM baby_names_prepared
WHERE Year_Of_Birth = :year_param
GROUP BY First_Name
Acesso como argumentos de código
Para alguns tipos de tarefa, os parâmetros são passados para o código como argumentos. Os seguintes tipos de tarefa têm argumentos passados para eles:
Python script
Python Wheel
JAR
Spark Submit
Para obter detalhes, consulte Detalhes por tipo de tarefa, mais adiante neste artigo.
Para dbt
tarefa, os parâmetros são passados chamando dbt comando em sua tarefa.
Usar referências de valores dinâmicos ao configurar uma tarefa
Quando o senhor estiver configurando uma tarefa na interface do usuário Databricks, use a sintaxe de referência de valor dinâmico para acessar os parâmetros da tarefa ou outros valores dinâmicos. Para acessar os parâmetros do Job, use a sintaxe: {{job.parameters.<name>}}
. Por exemplo, ao configurar uma tarefa Python wheel
, o senhor pode definir as entradas Key e Value de um parâmetro para fazer referência a um parâmetro Job chamado year_param
, como year
. / Year_{{job.parameters.year_param}}
. Além de fornecer acesso aos parâmetros na configuração, os valores dinâmicos também dão acesso a outros dados sobre o Job ou a tarefa, por exemplo, o {{job.id}}
. O senhor pode clicar em {} na configuração da tarefa para obter uma lista de possíveis valores dinâmicos e inseri-los em sua configuração.
Detalhes por tipo de tarefa
O método a ser usado pelo senhor depende do tipo de tarefa.
Tipo de tarefa | Acesso na configuração | Acesso em código |
---|---|---|
O senhor pode usar referências de valores dinâmicos na interface do usuário do Databricks para configurar o Notebook (por exemplo, para fazer referência aos parâmetros do Job nos valores dos parâmetros da tarefa). O senhor pode substituir ou adicionar parâmetros adicionais ao executar manualmente uma tarefa usando a opção executar um trabalho com parâmetros diferentes. | O senhor pode usar parâmetros nomeados para SQL em seu Notebook ou | |
Os parâmetros definidos na tarefa são passados como argumentos para o seu script. Você pode usar referências de valores dinâmicos na caixa de texto Parâmetros . | Os parâmetros podem ser lidos como argumentos posicionais ou analisados usando o módulo argparse em Python. | |
Os parâmetros definidos na definição da tarefa são passados como argumentos de palavras-chave para o seu código. Seus arquivos Python wheel devem ser configurados para aceitar argumentos de palavras-chave. Você pode usar referências de valores dinâmicos nos valores dos seus parâmetros. | Acesse como argumentos de palavra-chave ao seu script. Para ver um exemplo de leitura de argumentos em um pacote de scripts Python em um arquivo Python wheel, consulte Usar um arquivo Python wheel em um trabalho Databricks. | |
O senhor pode usar referências de valores dinâmicos na configuração da tarefa. | Use parâmetros nomeados para acessar os valores dos parâmetros. | |
O pipeline não suporta a passagem de parâmetros para a tarefa. | Não compatível. | |
O senhor pode usar referências de valores dinâmicos para passar parâmetros como | Acesse como | |
O senhor pode usar referências de valores dinâmicos para passar parâmetros como argumentos na caixa de texto Parâmetros ao configurar a tarefa. | Os parâmetros são acessados como argumentos para o método principal da classe principal. | |
O senhor pode usar referências de valores dinâmicos para passar parâmetros como argumentos na caixa de texto Parâmetros ao configurar a tarefa. | Os parâmetros são acessados como argumentos para o método principal da classe principal. | |
O senhor pode usar referências de valores dinâmicos para criar um conjunto de Job Parameters ao configurar sua tarefa. Os valores podem incluir referências de valores dinâmicos. | Não aplicável. | |
O senhor pode usar referências de valores dinâmicos ao configurar sua tarefa, por exemplo, na Condição . | Não aplicável. | |
O senhor pode usar referências de valores dinâmicos ao configurar os Inputs para a sua tarefa. A tarefa aninhada recebe uma entrada como parâmetro de tarefa para cada iteração da tarefa aninhada. | Os parâmetros de acesso à tarefa aninhada, com base no tipo de tarefa. |