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

Databricks:如何实现每次将Notebook附加到集群时运行Init Script?

实现Notebook每次附加到Databricks集群时自动运行脚本的方案

针对你需要在Notebook每次附加到集群时执行ADLS权限配置脚本的需求,以下是几种可行的自动化实现方案:

方案1:Notebook初始化单元格(Init Cells)

这是最直接的方式,适合单Notebook或少量Notebook的场景:

  • 将ADLS权限配置脚本(Shell命令、Spark配置代码等)放在Notebook的一个单元格中
  • 右键点击该单元格,选择「Set as Init Cell」并勾选「Run on attach」选项
  • 此后每次该Notebook附加到集群(包括重新附加、切换集群),该单元格都会自动执行

方案2:集群级Spark会话初始化命令

如果需要所有附加到该集群的Notebook都自动执行权限脚本,可通过集群Spark配置实现:

  1. 进入集群「编辑」页面,找到「Spark配置」区域
  2. 添加以下配置项(替换为你的实际脚本路径和命令):
    spark.sql.init.command = "sh /dbfs/path/to/your/adls-permission-script.sh"
    
    该参数会在每个SparkSession创建时自动执行,而每次Notebook附加到集群都会创建新的SparkSession,正好匹配你的需求
  3. 保存配置并重启集群(Spark配置修改后需重启集群生效)

方案3:共享初始化函数(多语言支持)

如果权限配置逻辑复杂,需要用Python/Scala实现,可封装成共享函数供所有Notebook调用:

  1. 创建一个共享的工具类Notebook,定义权限配置函数:
    # 示例Python函数
    def setup_adls_permissions():
        # 设置ADLS账户密钥(建议用Databricks Secrets管理敏感信息)
        spark.conf.set("fs.azure.account.key.your-adls-account.dfs.core.windows.net", dbutils.secrets.get("secret-scope", "adls-key"))
        # 挂载指定ADLS目录(按需执行)
        dbutils.fs.mount(
            source="abfss://container@your-adls-account.dfs.core.windows.net/target-folder",
            mount_point="/mnt/adls-target",
            extra_configs={"fs.azure.account.key.your-adls-account.dfs.core.windows.net": dbutils.secrets.get("secret-scope", "adls-key")}
        )
    
  2. 在需要的Notebook中添加初始化单元格,导入并执行该函数:
    # 导入共享工具Notebook
    %run "/path/to/your/utility-notebook"
    # 执行权限配置
    setup_adls_permissions()
    
  3. 将该导入单元格设置为「Init Cell」,确保每次附加时自动执行

方案4:自定义SparkSession钩子(进阶)

对于需要更细粒度控制的场景,可利用Spark的会话初始化钩子:

  • Scala环境下,可通过SparkSession.builder().config("spark.sql.extensions", "com.yourcompany.SessionInitExtension")自定义扩展,在会话创建时触发权限配置
  • Python环境下,可结合Spark 3.0+支持的SparkSession的onCreate事件,绑定权限配置逻辑

注意事项

  • 脚本路径建议存放在DBFS(如/dbfs/...),避免集群本地文件的访问限制
  • 敏感信息(如ADLS密钥)务必用Databricks Secrets管理,禁止硬编码
  • 测试时可手动断开再重新附加Notebook,验证脚本是否自动执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:15:19