共用方式為


舊版筆記本小工具: ${param}

警告

${param} 存取小工具值的語法已在 Databricks Runtime 15.2 和後續版本中被棄用。 請改用目前的 Databricks 小工具語法:param)。

本頁說明如何使用舊版 ${param} 語法來執行在 Databricks Runtime 15.1 和更低版本上執行的筆記本小工具。 Databricks 建議您 移轉至目前的語法

在 Databricks Runtime 15.1 及更低版本中使用元件值

本節說明在 Databricks Runtime 15.1 和之前的版本中如何將 Databricks 小工具的值傳遞到筆記本儲存格。

  1. 建立小工具以指定文字值。

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. 使用 ${param} 語法將值傳入 widget。

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

備註

若要轉義 $SQL 字串文字中的字元,請使用 \$。 例如,若要表示字串 $1,000,請使用 "\$1,000"$無法逸出 SQL ID 的字元。

移轉至參數標記

下表顯示參數的常見使用案例、原始 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)