You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks Python笔记本如何向dbutils文本控件传变量作为默认值

问题原因

Databricks 笔记本控件存在会话级缓存规则:当前笔记本活跃会话中如果已经存在同名控件,后续调用dbutils.widgets.text()创建同名控件时,传入的默认值不会覆盖会话内已存储的控件值。如果此前创建该控件时未设置默认值、或手动清空过输入框内容,就会出现空白输入框,不会自动填充你传入的变量值。
你当前写的变量传参语法本身没有错误,问题并非来自参数传递写法。

修复方案

创建控件前,先移除当前会话中已存在的同名控件,清除缓存后再传入变量作为默认值创建即可,参考代码:

defaultValue = "2092"
# 移除同名控件的历史缓存
dbutils.widgets.remove("yearvalue")
# 重新创建控件,传入变量作为默认值
dbutils.widgets.text("yearvalue", defaultValue)

如果需要初始化多个控件,也可以先调用dbutils.widgets.removeAll()清空当前会话内所有控件缓存,再依次执行各控件的创建逻辑,适合批量初始化场景。

注意事项
  • dbutils.widgets.text()的第二个参数仅接受字符串类型,如果你的默认值变量是数字、时间戳等非字符串类型,需要先通过str()方法转成字符串再传入,否则会出现显示异常。
  • 作业调度场景下,作业配置中传入的参数优先级高于代码内设置的默认值,此时不显示代码内的默认值属于正常逻辑。

内容的提问来源于stack exchange,提问作者Surender Raja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 23:24:15