无法从Databricks建立到SQL Server的连接,无法从SQL Server中读取和创建表



我在Databricks中使用下面的代码从SQL Server读取表,但它返回错误"('01000', "[01000] [unixODBC][Driver Manager]无法打开lib 'SQL Server Native Client 11.0': file not found (0) (SQLDriverConnect)")":

'''
cnxn_str1 = ("Driver={SQL Server Native Client 11.0};"
"Server=SRV3;"
"Database=DBN3;"
'Trusted_Connection=yes;')
cnxn1 = pyodbc.connect(cnxn_str1)
'''

然而,这段代码在本地机器Jupyter Notebook中完美地工作。我该怎么做呢?理想情况下,我想创建一个连接到SQL Server能够从那里读取表,也创建表。如有任何帮助,不胜感激。

默认不安装连接SQL Server所需的SQL Driver。作为快速修复,您可以使用以下代码片段将其安装到集群上。将其粘贴到单元格中并运行:

%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

如果您正在寻找一个更适合生产的解决方案,我会将此脚本放在初始化脚本中,以便在集群启动时安装。

[没有答案-暂时无法评论]

下面来自微软的链接列出了在Ubuntu中安装ODBC驱动程序的步骤,Databricks通常基于该驱动程序。这与上面的评论非常相似。此外,它还提供了关于unixodbc和其他工具的附加信息。我不确定是否有必要,但你可以在进一步研究后试试。

https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16 ubuntu18

# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev

同样根据链接中的评论-似乎有一些可以设置的选项。[01000] [unixODBC][Driver Manager]Can't open lib 'SQL Server Native Client 11.0': file not found (0) (SQLDriverConnect))

您是否安装了SQL Server Native Client 11.0并在/etc/odbbcist .ini中配置了它?SNC可以追溯到SQL Server 2005-2012时代。考虑在Linux上安装ODBC 17以进行更新的开发。- - - - - -AlwaysLearning2021年2月12日3:05

一如既往,请在安装/实施系统中的任何更改之前先进行研究。

最新更新