舊版筆記本小工具:
警告
${param} 存取小工具值的語法已在 Databricks Runtime 15.2 和後續版本中被棄用。 請改用目前的 Databricks 小工具語法 (:param)。
本頁說明如何使用舊版 ${param} 語法來執行在 Databricks Runtime 15.1 和更低版本上執行的筆記本小工具。 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) |