Поделиться через


Устаревшие виджеты записной книжки: ${param}

Предупреждение

Синтаксис ${param} для доступа к значениям мини-приложений устарел в Databricks Runtime 15.2 и выше. Вместо этого используйте текущий синтаксис мини-приложений Databricks (:param).

На этой странице показано, как использовать устаревший ${param} синтаксис для мини-приложений записных книжек, работающих в Databricks Runtime 15.1 и ниже. Databricks рекомендует перейти к текущему синтаксису.

Использование значений виджетов в Databricks Runtime 15.1 и ниже

В этом разделе описывается, как передавать значения виджетов Databricks в ячейки записной книжки в Databricks Runtime версии 15.1 и ниже.

  1. Создайте мини-приложения для указания текстовых значений.

Питон

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. Передайте значения виджета с помощью синтаксиса ${param}.

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

Замечание

Чтобы избежать символа $ в строковом литерале SQL, используйте \$. Например, чтобы выразить строку $1,000, используйте "\$1,000". Символ $ не может быть экранирован для идентификаторов SQL.

Переход на маркеры параметров

В следующей таблице показаны распространенные варианты использования параметров, исходный синтаксис мини-приложения Azure Databricks (устаревший в Databricks Runtime 15.2 и более поздних версиях) и эквивалентный синтаксис с использованием синтаксиса маркера именованных параметров (поддерживается в Databricks Runtime 15.2 и выше).

Вариант использования параметра ${param} исходный синтаксис виджета (устарел в Databricks Runtime 15.2 и выше) :param Синтаксис маркера параметра (поддерживается в Databricks Runtime 15.2 и выше)
Загрузка только данных до указанной даты WHERE date_field < '${date_param}'
Необходимо включить кавычки вокруг параметра даты и фигурные скобки.
WHERE date_field < :date_param
Загружать только те данные, которые меньше указанного числового значения WHERE price < ${max_price} WHERE price < :max_price
Сравнение двух строк WHERE region = ${region_param} WHERE region = :region_param
Указание таблицы, используемой в запросе SELECT * FROM ${table_name} SELECT * FROM IDENTIFIER(:table)
Когда пользователь вводит этот параметр, он должен использовать полное трехуровневое пространство имен для идентификации таблицы.
Независимо укажите каталог, схему и таблицу, используемую в запросе SELECT * FROM ${catalog}.${schema}.${table} SELECT * FROM IDENTIFIER(:catalog \|\| '.' \|\| :schema \|\| '.' \|\| :table)
Использование параметров в качестве шаблона в более длинной отформатируемой строке "(${area_code}) ${phone_number}"
Значения параметров автоматически объединяются в виде строки.
format_string((%d) %d, :area_code, :phone_number)
Полный пример см. в разделе "Объединение нескольких параметров ".
Создание интервала SELECT INTERVAL ${p} MINUTE SELECT CAST(:param as INTERVAL MINUTE)
Фильтрация по списку возможных значений 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)