我在安装时遇到了同样的问题。这是我尝试过的并且有效。
%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
dbutils.fs.put("/databricks/init/<YourClusterName>/pyodbc-install.sh","""
#!/bin/bash
sudo apt-get update
sudo apt-get -q -y install unixodbc unixodbc-dev
sudo apt-get -q -y install python3-dev
/databricks/python/bin/pip install pyodbc
""", True)
重启集群
代码中导入pyodbc
我不久前使用 pyobdc 连接时遇到了一些问题,我的修复详细信息如下:https://datathirst.net/blog/2018/10/12/executing-sql-server-stored-procedures-on-databricks -pyspark
我认为问题源于 databricks 集群上的 PYTHONPATH 设置为 Python 2 安装。
我怀疑这些台词:
%sh
apt-get -y install unixodbc-dev
/databricks/python/bin/pip install pyodbc
将为您工作。
更新:更简单(尽管您仍然需要上面的 unixodbc-dev):
%sh
sudo apt-get install python3-pip -y
pip3 install --upgrade pyodbc
以下内容适用于我,作为 Microsoft ODBC 18 的 Databricks Runtime 14.3 LTS 上的工作区初始化脚本,即 cluster_dependency_14_3_lts.sh:
#!/bin/bash
if ! [[ "18.04 20.04 22.04 23.04 24.04" == *"$(lsb_release -rs)"* ]];
then
echo "Ubuntu $(lsb_release -rs) is not currently supported.";
exit;
fi
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
sudo apt-get install -y unixodbc-dev python3-dev
/databricks/python/bin/pip install pyodbc
这来自这里。
启动集群。然后在笔记本上
import pyodbc
。