Databricks集群配置init脚本自动安装pyodbc后找不到ODBC驱动问题求助
故障根因
- 源版本不匹配:脚本硬编码了Ubuntu 16.04的微软软件源,当前主流Databricks运行时使用的是Ubuntu 20.04/22.04镜像,版本不匹配导致msodbcsql17驱动未实际安装成功,自然找不到对应驱动文件
- 安装流程中断:初始化脚本运行在无交互的root上下文环境,脚本中混杂了不必要的sudo指令,部分安装步骤缺少静默确认参数,可能导致安装过程触发交互提示直接中断退出
- Python环境不匹配:脚本中直接使用pip3安装pyodbc时,初始化脚本默认调用系统Python的pip,而Databricks笔记本运行时使用的是独立的虚拟Python环境,会导致pyodbc安装到系统Python而非业务使用的运行环境中
- 缺少驱动注册步骤:部分场景下安装完成的ODBC驱动未自动注册到unixODBC的全局配置中,也会触发驱动找不到的报错
修正后的初始化脚本
#!/bin/bash # 安装基础依赖 apt-get update apt-get install -y curl apt-transport-https lsb-release gnupg # 自动适配当前Ubuntu版本导入微软源 curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /usr/share/keyrings/microsoft-prod.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list" > /etc/apt/sources.list.d/mssql-release.list apt-get update # 静默安装ODBC驱动及依赖 ACCEPT_EULA=Y apt-get install -y msodbcsql17 unixodbc-dev # 为Databricks业务Python环境安装pyodbc /databricks/python/bin/pip install --upgrade pyodbc
验证方法
集群启动完成后,在笔记本中执行以下代码校验驱动状态:
import pyodbc print(pyodbc.drivers())
输出结果中包含ODBC Driver 17 for SQL Server即可正常执行连接逻辑。
内容的提问来源于stack exchange,提问作者Sarim Zia Khan
相关产品推荐
相关产品推荐

