舊版筆記本小工具:
警告
${param} 存取小工具值的語法已在 Databricks Runtime 15.2 和後續版本中被棄用。 請改用目前的 Databricks 小工具語法 (:param)。
本頁將展示如何在 Databricks Runtime 15.1 及以下版本運行的筆記本元件中使用舊 ${param} 有語法。 Databricks 建議您 移轉至目前的語法。
在 Databricks Runtime 15.1 及更低版本中使用元件值
本節說明在 Databricks Runtime 15.1 和之前的版本中如何將 Databricks 小工具的值傳遞到筆記本儲存格。
- 建立小工具以指定文字值。
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"
使用
${param}語法將值傳入 widget。SELECT * FROM ${database}.${table} WHERE col == ${filter_value} LIMIT 100
移轉至參數標記
下表展示了參數的常見使用案例、原始 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) |