Acessar valores de parâmetro de uma tarefa

Acesse valores de parâmetros no código em suas tarefas, incluindo notebooks do Azure Databricks, scripts Python e arquivos SQL.

Os parâmetros incluem parâmetros definidos pelo usuário, saída de valores de tarefas upstream e valores de metadados gerados pelo trabalho. Confira Parametrizar trabalhos.

Embora os detalhes variem de acordo com o tipo de tarefa, há quatro métodos comuns usados para referenciar valores de parâmetro do código-fonte:

Em cada um desses casos, você faz referência à chave do parâmetro para recuperar seu valor. Às vezes, a chave é conhecida como o nome do parâmetro.

Para ver essas técnicas aplicadas em um trabalho controlado por metadados que usa uma tarefa SQL e uma For each tarefa, consulte Usar uma tabela de controle para conduzir um For each trabalho.

Usar dbutils no código em um notebook

O código do notebook em execução 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 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 um parâmetro de trabalho e um parâmetro de tarefa compartilharem uma chave, o parâmetro de trabalho terá precedência. Consulte Pushdown do parâmetro de trabalho.

O código acima produz um erro quando executado em um notebook autônomo e não como parte de um trabalho porque os parâmetros não são enviados para um notebook autônomo. Você pode definir um padrão para o year_param parâmetro 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 testar fora de um trabalho, ele também mascara parâmetros de tarefa ou trabalho configurados incorretamente.

Usar parâmetros nomeados no SQL

Ao executar SQL em uma tarefa de notebook ou de pipeline, você pode usar a sintaxe de parâmetro nomeado para obter os parâmetros da tarefa. Por exemplo, para recuperar um parâmetro de tarefa chamado year_param, você pode obter seu valor usando :year_param em sua consulta:

SELECT *
FROM baby_names_prepared
WHERE Year_Of_Birth = :year_param
GROUP BY First_Name

Acesso como os argumentos de código

Para alguns parâmetros de tipos de tarefa, 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 nesta página.

Para as tarefas dbt, os parâmetros são passados chamando os comandos dbt em sua tarefa.

Usar referências de valor dinâmico ao configurar uma tarefa

Quando você estiver configurando uma tarefa na interface do usuário Azure Databricks, use a sintaxe de referência de valor dinâmico para recuperar parâmetros de trabalho ou outros valores dinâmicos. Para recuperar parâmetros de trabalho, use a sintaxe: {{job.parameters.<name>}}. Por exemplo, ao configurar uma tarefa Python wheel, você pode definir as entradas Key e Value para fazer referência a um parâmetro job chamado year_param, como year / Year_{{job.parameters.year_param}}. Além de fornecer acesso a parâmetros na configuração, os valores dinâmicos também fornecem acesso a outros dados sobre seu trabalho ou tarefa, por exemplo, o {{job.id}}. Você pode clicar {} 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

Qual desses métodos você usa depende do tipo de tarefa.

Tipo de tarefa Recuperar nas configurações Recuperar no código
Notebooks Você pode usar as referências de valores dinâmicos na interface do usuário do Azure Databricks para configurar o notebook (por exemplo, para referir-se aos parâmetros do trabalho nos valores dos parâmetros da tarefa). Você pode substituir ou adicionar parâmetros adicionais ao executar manualmente uma tarefa usando a opção Executar um trabalho com configurações diferentes . Você pode usar parâmetros nomeados para SQL em seu notebook ou dbutils.widgets em seu código.
Python script Os parâmetros definidos na tarefa são passados como argumentos para o script. Você pode usar referências de valor dinâmico na caixa de texto Parâmetros . Os parâmetros podem ser lidos como argumentos posicionais ou analisados usando o módulo argparse em Python.
Wheel Python Os parâmetros definidos na definição da tarefa são passados como argumentos de palavra-chave para o código. Seus arquivos de roda Python devem ser configurados para aceitar argumentos de palavra-chave. Você pode usar referências de valor dinâmico nos valores de seus parâmetros. Acesse como argumentos de palavra-chave para seu script. Para ver um exemplo de leitura de argumentos em um script Python empacotado em um arquivo Python wheel, consulte Usar um arquivo Python wheel no Lakeflow Jobs.
SQL Você pode usar referências de valor dinâmico na configuração da tarefa. Use parâmetros nomeados para recuperar valores de parâmetro.
Pipeline (os parâmetros estão em Beta) Você pode usar referências de valor dinâmico para passar parâmetros como argumentos na caixa de texto Parâmetros ao configurar sua tarefa. Use parâmetros nomeados para recuperar valores de parâmetro.
Painel de Controle Você pode pré-aplicar valores de filtro configurando filtros de painel na tarefa. Se o Identificador de URL de um filtro corresponder a uma chave de parâmetro no nível do trabalho, a tarefa aplicará automaticamente o valor desse parâmetro ao filtro. Não aplicável.
Power BI Tarefas do Power BI não suportam a passagem de parâmetros para a tarefa. Não há suporte.
dbt Você pode usar as referências de valor dinâmico para passar os parâmetros como os comandos dbt ao configurar sua tarefa. Acesse como comandos dbt.
JAR Você pode usar referências de valor dinâmico para passar parâmetros como argumentos na caixa de texto Parâmetros ao configurar sua tarefa. Os parâmetros são acessados como argumentos para o método principal da classe principal.
Envio Spark Você pode usar referências de valor dinâmico para passar parâmetros como argumentos na caixa de texto Parâmetros ao configurar sua tarefa. Os parâmetros são acessados como argumentos para o método principal da classe principal.
Executar tarefa Você pode usar referências de valor dinâmico para criar um conjunto de parâmetros de trabalho ao configurar sua tarefa. Os valores podem incluir referências de valor dinâmico. Não aplicável.
Condição if/else Você pode usar referências de valor dinâmico ao configurar sua tarefa, por exemplo, na Condição. Não aplicável.
Para cada Você pode usar referências de valor dinâmico ao configurar as Entradas para sua tarefa. A tarefa aninhada recebe uma entrada como um parâmetro de tarefa para cada iteração da tarefa aninhada. As tarefas aninhadas recuperam parâmetros com base no tipo de tarefa.
Notebook da Sala Limpa Você pode usar as referências de valores dinâmicos na interface do usuário do Azure Databricks para configurar o notebook (por exemplo, para referir-se aos parâmetros do trabalho nos valores dos parâmetros da tarefa). Você pode usar parâmetros nomeados para SQL em seu notebook ou dbutils.widgets em seu código.