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

如何在Databricks作业中添加ODBC初始化脚本解决驱动缺失问题?

解决Databricks作业ODBC驱动找不到的问题

一、先核对集群初始化脚本的配置是否到位

你说已经给集群配了初始化脚本,但先确认这几点没出错:

  • 打开Databricks控制台找到目标集群,点编辑
  • 切到高级选项里的初始化脚本标签
  • 确认脚本路径是dbfs:/Volumes/projects/default/admin/odbc.sh(Volumes路径必须加dbfs:/前缀才能被Databricks识别)
  • 脚本类型选Shell,状态是启用的
  • 改完配置必须重启集群——初始化脚本只在集群启动时执行,不重启等于白配

二、作业级单独指定初始化脚本(适合共享集群场景)

如果集群是多人共享的不想改全局配置,或者作业需要独立用这个脚本,直接在作业里配置:

单任务作业

  • 创建/编辑作业时,在任务板块的集群配置里:
    • 选现有集群:确保这个集群已经按上面的步骤配好并重启过
    • 新建集群:切到高级选项→初始化脚本,添加dbfs:/Volumes/projects/default/admin/odbc.sh,类型选Shell,再创建集群
  • 保存后重新运行作业

多任务工作流

  • 要么给每个任务对应的集群单独加脚本,要么在工作流的统一集群配置里添加初始化脚本

三、检查初始化脚本本身是否真的装了驱动

如果配置都对还是报错,大概率是脚本没正确安装驱动:

  • 脚本里得有安装ODBC Driver 17的命令,比如针对Debian/Ubuntu集群:
    #!/bin/bash
    sudo apt-get update
    sudo apt-get install -y msodbcsql17 unixodbc-dev
    
  • 去集群日志里看脚本执行情况:进集群详情页→日志→初始化脚本日志,搜odbc.sh的输出,看有没有安装失败的报错
  • 也可以在集群的笔记本里跑命令验证:Debian系用dpkg -l | grep msodbcsql17,RHEL系用yum list installed | grep msodbcsql17,确认驱动真的装上了

四、临时 workaround:代码里手动指定驱动路径

要是上面都没用,直接在Python代码里写死驱动的绝对路径:

import pyodbc
conn = pyodbc.connect(
    'DRIVER=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.10.so.2.1;'
    'SERVER=<你的服务器地址>;'
    'DATABASE=<你的数据库名>;'
    'UID=<用户名>;'
    'PWD=<密码>'
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:48:09