您知道如何在Databricks群集上安装'用于SQL Server的ODBC驱动程序17吗?

问题描述 投票:0回答:2

我正在尝试使用pyodbc python库从Databricks笔记本连接到Azure SQL数据仓库。当我执行代码时,出现此错误:

Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")

我知道我需要安装此驱动程序,但我不知道如何安装。我有一个运行在Runetime 6.4,Standard_DS3_v2上的Databricks集群。

python-3.x pyodbc databricks azure-sql-data-warehouse
2个回答
0
投票

默认情况下,Azure Databricks没有安装ODBC驱动程序。

在单个单元格中运行以下命令以在Azure Databricks群集上安装MY SQL ODBC驱动程序。

%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

enter image description here


0
投票

[为什么不使用ODBC驱动程序而不使用Azure Synapse(又名SQL数据仓库)的Spark驱动程序,所以默认情况下,databricks群集已安装了该驱动程序(com.databricks.spark.sqldw“)。

文档:https://docs.databricks.com/data/data-sources/azure/synapse-analytics.html#language-python

使用示例:

df = spark.read \
.format("com.databricks.spark.sqldw") \
.option("url", "jdbc:sqlserver://<the-rest-of-the-connection-string>") \
.option("tempDir", "wasbs://<your-container-name>@<your-storage-account- 
name>.blob.core.windows.net/<your-directory-name>") \
.option("forwardSparkAzureStorageCredentials", "true") \
.option("dbTable", "my_table_in_dw") \
.load()
© www.soinside.com 2019 - 2024. All rights reserved.