Aller au contenu principal

Widgets de notebook hérités : ${param}

attention

Obsolète

La syntaxe ${param} pour l'accès aux valeurs de widget a été dépréciée dans Databricks Runtime 15.2 et versions ultérieures. Utilisez la syntaxe actuelle des widgets Databricks, (:param) à la place.

La syntaxe héritée ${param} accède aux valeurs du widget de Notebook sur Databricks Runtime 15,1 ou une version antérieure. Databricks vous recommande de migrer vers la syntaxe actuelle.

Utilisez les valeurs de widget dans Databricks Runtime 15.1 et versions antérieures

Cette section décrit comment transmettre les valeurs des widgets Databricks aux cellules de %sql notebook dans Databricks Runtime 15.1 et versions antérieures.

  1. Créer des widgets pour spécifier des valeurs textuelles.
Python
dbutils.widgets.text("database", "")
dbutils.widgets.text("table", "")
dbutils.widgets.text("filter_value", "100")
  1. Transmettez les valeurs de widget à l’aide de la syntaxe ${param}.

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

Pour échapper au caractère $ dans un littéral de chaîne SQL, utilisez \$. Par exemple, pour exprimer la chaîne $1,000, utilisez "\$1,000". Le caractère $ ne peut pas être échappé pour les identifiants SQL.

Migrer vers les marqueurs de paramètres

Le tableau suivant présente les cas d'utilisation courants des paramètres, la syntaxe originale du widget Databricks (dépréciée dans Databricks Runtime 15.2 et versions ultérieures) et la syntaxe équivalente utilisant la syntaxe des marqueurs de paramètres nommés (prise en charge dans Databricks Runtime 15.2 et versions ultérieures).

Cas d’utilisation du parameter

${param} syntaxe de widget d'origine (obsolète à partir de Databricks Runtime 15.2 et versions ultérieures)

:param syntaxe des marqueurs de parameter (prise en charge à partir de Databricks Runtime 15.2 et versions ultérieures)

Charger uniquement les données avant une date spécifiée

WHERE date_field < '${date_param}'

Vous devez inclure des guillemets autour du paramètre de date et des accolades.

WHERE date_field < :date_param

Charger uniquement les données inférieures à une valeur numérique spécifiée.

WHERE price < ${max_price}

WHERE price < :max_price

Comparer deux chaînes de caractères

WHERE region = ${region_param}

WHERE region = :region_param

Spécifiez la table utilisée dans une query

SELECT * FROM ${table_name}

SELECT * FROM IDENTIFIER(:table)

Lorsqu'un utilisateur saisit ce parameter, il doit utiliser l'espace de noms complet à trois niveaux pour identifier la table.

Spécifiez indépendamment le catalogue, le schéma et la table utilisés dans une query.

SELECT * FROM ${catalog}.${schema}.${table}

SELECT * FROM IDENTIFIER(:catalog || '.' || :schema || '.' || :table)

Utilisez des paramètres comme template dans une chaîne formatée plus longue

"(${area_code}) ${phone_number}"

Les valeurs de parameter sont automatiquement concaténées sous forme de chaîne de caractères.

format_string((%d) %d, :area_code, :phone_number)

Consultez Concaténer plusieurs paramètres pour un exemple complet.

Créer un intervalle

SELECT INTERVAL ${p} MINUTE

SELECT CAST(:param as INTERVAL MINUTE)

Filtrer par une liste de valeurs possibles

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)

Cas d’utilisation du parameter

${param} syntaxe de widget d'origine (obsolète à partir de Databricks Runtime 15.2 et versions ultérieures)

:param syntaxe des marqueurs de parameter (prise en charge à partir de Databricks Runtime 15.2 et versions ultérieures)

Charger uniquement les données avant une date spécifiée

WHERE date_field < '${date_param}'

Vous devez inclure des guillemets autour du paramètre de date et des accolades.

WHERE date_field < :date_param

Charger uniquement les données inférieures à une valeur numérique spécifiée.

WHERE price < ${max_price}

WHERE price < :max_price

Comparer deux chaînes de caractères

WHERE region = ${region_param}

WHERE region = :region_param

Spécifiez la table utilisée dans une query

SELECT * FROM ${table_name}

SELECT * FROM IDENTIFIER(:table)

Lorsqu'un utilisateur saisit ce parameter, il doit utiliser l'espace de noms complet à trois niveaux pour identifier la table.

Spécifiez indépendamment le catalogue, le schéma et la table utilisés dans une query.

SELECT * FROM ${catalog}.${schema}.${table}

SELECT * FROM IDENTIFIER(:catalog || '.' || :schema || '.' || :table)

Utilisez des paramètres comme template dans une chaîne formatée plus longue

"(${area_code}) ${phone_number}"

Les valeurs de parameter sont automatiquement concaténées sous forme de chaîne de caractères.

format_string((%d) %d, :area_code, :phone_number)

Consultez Concaténer plusieurs paramètres pour un exemple complet.

Créer un intervalle

SELECT INTERVAL ${p} MINUTE

SELECT CAST(:param as INTERVAL MINUTE)

Filtrer par une liste de valeurs possibles

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)