如何更改 Databricks 中文本输入小部件的默认值?

How can I change the default value for a text input widget in Databricks?

我有一个文本输入小部件,用户可以在其中输入日期。

CREATE WIDGET TEXT FromDate DEFAULT '2021-09-27'

这很好用,除了我希望默认 总是昨天 的日期。

我当然可以这样做:

SELECT CAST(date_sub(CAST(current_timestamp() as DATE), 1) AS STRING)

这 returns 2021-09-27 正如预期的那样,所以我希望这对小部件有用:

CREATE WIDGET TEXT FromDate DEFAULT (SELECT CAST(date_sub(CAST(current_timestamp() as DATE), 1) AS STRING))

但是,这会导致:


Error in SQL statement: ParseException: 
no viable alternative at input 'CREATE WIDGET'(line 1, pos 7)

== SQL ==
CREATE WIDGET TEXT From DEFAULT (SELECT CAST(date_sub(CAST(current_timestamp() as DATE), 1) AS STRING))
-------^^^

如何更改 Databricks 中文本输入小部件的默认值,使其始终返回昨天的日期?

不幸的是,这是不可能的 - 您只能指定子查询来填充 Dropdown 小部件的 CHOICES 参数。文本小部件仅接受文字值。

根据 docs:

To specify the selectable values in a dropdown widget in SQL, you can write a sub-query. The first column of the resulting table of the sub-query determines the values.

可能的解决方法是使用 Python 创建小部件,其中计算默认值的可能性更大。