ODBC 在新的 Databricks 群集中不起作用

ODBC is not working in new cluster of Databricks

提问人:ddcabz 提问时间:11/8/2023 最后编辑:egleaseddcabz 更新时间:11/22/2023 访问量:54

问:

import pyodbc

server = 'serve'
username = 'username'
password = 'password'
driver = '{ODBC Driver 17 for SQL Server}'
schema = 'schema'
database = 'database'

cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+dbutils.secrets.get(scope = "samplesecrets", key = "sqluname")+';PWD='+ dbutils.secrets.get(scope = "samplesecrets", key = "sqlpassword"))

错误:

cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+dbutils.secrets.get(scope = "samplesecrets", key = "sqluname")+';PWD='+ dbutils.secrets.get(scope = "samplesecrets", key = "sqlpassword"))
    
    Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")

我试过什么:

%sh
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get -q -y install msodbcsql17

错误:

Reading package lists...
Building dependency tree...
Reading state information...
msodbcsql17 is already the newest version (17.8.1.1-1).
0 upgraded, 0 newly installed, 0 to remove and 81 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up msodbcsql17 (17.8.1.1-1) ...
dpkg: error processing package msodbcsql17 (--configure):
 installed msodbcsql17 package post-installation script subprocess returned error exit status 127
Errors were encountered while processing:
 msodbcsql17
E: Sub-process /usr/bin/dpkg returned an error code (1)

databricks 的运行时版本为 13.3

请帮我如何消除此错误。谢谢

python odbc databricks pyodbc

评论

0赞 Alex Ott 11/8/2023
看起来这是 或pyodbcunixodbc
0赞 ddcabz 11/9/2023
@AlexOtt idk怎么做..你有一些示例代码可以尝试吗?
0赞 pensive 11/22/2023
https://stackoverflow.com/questions/68615355/connect-python-to-sql-server-from-ubuntu/71076441#71076441检查可能有助于您解决此问题

答:

0赞 Simone 11/22/2023 #1

您很可能需要将 ubuntu 软件包版本升级到 22.04: curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

若要检查要使用的包版本,请运行: %sh cat /etc/*发布

评论

0赞 Community 11/23/2023
您的答案可以通过额外的支持信息得到改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。
0赞 ddcabz 11/23/2023
这解决了我的问题,但是,当我尝试重新启动 Databricks 群集时,问题仍然存在。我尝试的是创建初始化脚本,但 databricks 不允许使用 DBFS 文件,因为它已被弃用。:(