Compartilhar via


Widgets de notebook herdados: ${param}

Aviso

A ${param} sintaxe para acessar valores de widget foi preterida no Databricks Runtime 15.2 e superior. Use a sintaxe atual dos widgets do Databricks (:param) em vez disso.

Esta página mostra como usar a sintaxe herdada ${param} para widgets de notebooks em execução no Databricks Runtime 15.1 e versões anteriores. O Databricks recomenda que você migre para a sintaxe atual.

Usar valores de widget no Databricks Runtime 15.1 e abaixo

Esta seção descreve como passar valores de widgets do Databricks para %sql células de notebook no Databricks Runtime 15.1 e abaixo.

  1. Crie widgets para especificar valores de texto.

Python

dbutils.widgets.text("database", "")
dbutils.widgets.text("table", "")
dbutils.widgets.text("filter_value", "100")

Scala

 dbutils.widgets.text("database", "")
 dbutils.widgets.text("table", "")
 dbutils.widgets.text("filter_value", "100")

R

dbutils.widgets.text("database", "")
dbutils.widgets.text("table", "")
dbutils.widgets.text("filter_value", "100")

SQL

CREATE WIDGET TEXT database DEFAULT ""
CREATE WIDGET TEXT table DEFAULT ""
CREATE WIDGET TEXT filter_value DEFAULT "100"
  1. Passe os valores do widget usando a ${param} sintaxe.

    SELECT *
    FROM ${database}.${table}
    WHERE col == ${filter_value}
    LIMIT 100
    

Observação

Para escapar do $ caractere em um literal de cadeia de caracteres SQL, use \$. Por exemplo, para expressar a cadeia de caracteres $1,000, use "\$1,000". O $ caractere não pode ser escapado para identificadores SQL.

Migrar para marcadores de parâmetro

A tabela a seguir mostra casos de uso comuns para parâmetros, a sintaxe original do widget do Azure Databricks (preterida no Databricks Runtime 15.2 e superior) e a sintaxe equivalente usando a sintaxe de marcador de parâmetro nomeado (com suporte no Databricks Runtime 15.2 e superior).

Caso de uso de parâmetro ${param} sintaxe de widget original (preterida a partir do Databricks Runtime 15.2 e superior) :param sintaxe de marcador de parâmetro (com suporte a partir do Databricks Runtime 15.2 ou superior)
Carregar somente dados antes de uma data especificada WHERE date_field < '${date_param}'
Você deve incluir aspas ao redor do parâmetro de data e colchetes cacheados.
WHERE date_field < :date_param
Carregar somente dados menores que um valor numérico especificado WHERE price < ${max_price} WHERE price < :max_price
Comparar duas cadeias de caracteres WHERE region = ${region_param} WHERE region = :region_param
Especificar a tabela usada em uma consulta SELECT * FROM ${table_name} SELECT * FROM IDENTIFIER(:table)
Quando um usuário insere esse parâmetro, ele deve usar o namespace completo de três níveis para identificar a tabela.
Especificar independentemente o catálogo, o esquema e a tabela usados em uma consulta SELECT * FROM ${catalog}.${schema}.${table} SELECT * FROM IDENTIFIER(:catalog \|\| '.' \|\| :schema \|\| '.' \|\| :table)
Usar parâmetros como um modelo em uma cadeia de caracteres formatada mais longa "(${area_code}) ${phone_number}"
Os valores de parâmetro são concatenados automaticamente como uma cadeia de caracteres.
format_string((%d) %d, :area_code, :phone_number)
Consulte Concatenar vários parâmetros para obter um exemplo completo.
Criar um intervalo SELECT INTERVAL ${p} MINUTE SELECT CAST(:param as INTERVAL MINUTE)
Filtrar por uma lista de valores possíveis SELECT * from table WHERE value IN (${list_parameter}) SELECT * FROM samples.nyctaxi.trips WHERE array_contains(TRANSFORM(SPLIT(:list_parameter, ','), s -> TRIM(s)), dropoff_zip)