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

如何在Databricks中导出%sh单元格变量供其他单元格使用

每个%sh单元格会独立启动一个shell子进程,单元格运行结束后进程销毁,你在单个单元格内export的环境变量仅在当前进程生效,跨单元格的新shell进程无法继承该变量。以下是两种符合需求的实现方案,均只会在笔记本启动时生成一次固定日期,哪怕运行时长超过1天也不会自动更新:

方案1:使用Databricks Widget全局传递(最推荐,全语言单元格通用)

  1. 在笔记本最开头运行一次Python单元格,生成启动时的固定日期并注册为全局组件:
import datetime
# 仅运行一次生成启动日期,后续不再变更
start_date = datetime.datetime.now().strftime("%Y-%m-%d")
dbutils.widgets.text("global_start_date", start_date)
  1. 任意%sh单元格可以直接读取注入的环境变量:
%sh
# 组件名称自动添加widget_前缀作为环境变量名
echo $widget_global_start_date

Python、Spark、SQL单元格也可以直接调用该变量,全场景通用。

方案2:本地临时文件存储(仅适用于%sh场景)

  1. 开头运行一次%sh单元格生成日期并存入驱动节点临时文件:
%sh
date '+%Y-%m-%d' > /tmp/databricks_notebook_start_date
  1. 后续所有%sh单元格读取该文件即可拿到固定日期:
%sh
current_date=$(cat /tmp/databricks_notebook_start_date)
echo $current_date

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:57:03