你知道如何在 Databricks 集群上安装 'ODBC Driver 17 for SQL Server' 吗?

Do you know how to install the 'ODBC Driver 17 for SQL Server' on a Databricks cluster?

我正在尝试使用 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 的 Databricks 集群,Standard_DS3_v2.

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

运行 在单个单元格中执行以下命令以在 Azure Databricks 群集上安装我的 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

为什么不使用 Azure Synapse(又名 SQL 数据仓库)的 Spark 驱动程序而不是使用 ODBC 驱动程序,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()