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

在Databricks中用SQLAlchemy或pyodbc连接SQL报错求助

报错原因
  • Databricks集群未安装ODBC Driver 17 for SQL Server驱动程序,pyodbc无法找到对应的库文件
  • 连接字符串指定的驱动版本(17)与集群已安装的驱动版本不匹配,或集群根本未部署该版本驱动
解决方法

方法1:通过集群初始化脚本安装ODBC Driver 17

Databricks默认使用Ubuntu系统,可通过初始化脚本在集群启动时自动安装驱动:

  1. 创建如下bash脚本(命名为install_odbc.sh):
#!/bin/bash
# 更新源并安装依赖
apt-get update && apt-get install -y apt-transport-https ca-certificates curl
# 添加微软GPG密钥
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
# 添加SQL Server ODBC软件源
echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/$(lsb_release -rs)/prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/mssql-release.list
# 安装ODBC Driver 17
apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql17
  1. 将脚本上传至DBFS(比如dbfs:/scripts/install_odbc.sh)
  2. 进入集群配置页面,在“初始化脚本”中添加该脚本路径,重启集群后驱动即可生效

方法2:修改连接字符串适配已安装的驱动版本

如果集群已安装其他版本的SQL Server ODBC驱动(如ODBC Driver 18),直接修改连接字符串中的驱动名称:
将原代码中的DRIVER={ODBC Driver 17 for SQL Server}替换为DRIVER={ODBC Driver 18 for SQL Server}(或对应已安装的版本号)

方法3:使用Databricks官方JDBC连接器替代

无需依赖ODBC驱动,直接用Spark JDBC连接SQL Server并执行操作:

# 读取SQL Server表
df = spark.read.format("jdbc") \
    .option("url", "jdbc:sqlserver://<server>:1433;databaseName=db_test") \
    .option("dbtable", "target_table") \
    .option("user", "<usrname>") \
    .option("password", "pwd") \
    .load()

# 注册为临时视图后执行DELETE
df.createOrReplaceTempView("temp_table")
spark.sql("DELETE FROM temp_table WHERE your_condition")

若需直接执行原生DELETE语句,也可通过JDBC连接提交:

from py4j.java_gateway import java_import
java_import(spark._jvm, "java.sql.Driver")

conn = spark._jvm.java.sql.DriverManager.getConnection(
    "jdbc:sqlserver://<server>:1433;databaseName=db_test",
    "<usrname>",
    "pwd"
)
stmt = conn.createStatement()
stmt.execute("DELETE FROM target_table WHERE your_condition")
stmt.close()
conn.close()

额外注意点

原代码中Trusted_Connection=Yes参数在Databricks云环境中无效(无Windows域信任),建议删除该参数,避免认证冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:23:14