如何在 Databricks 中安装 PYODBC

pyt*_*ser 0 pyodbc python-3.x databricks azure-databricks

我必须在 Databricks 中安装 pyodbc 模块。我曾尝试使用此命令 ( pip install pyodbc) 但由于以下错误而失败。

错误信息

Nik*_*dij 8

我在安装时遇到了同样的问题。这是我尝试过的,并且奏效了。

  • Databricks 没有默认的 ODBC 驱动程序。在单个单元格中运行以下命令以安装 MS 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
Run Code Online (Sandbox Code Playgroud)
  • 在笔记本中运行这个
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)
Run Code Online (Sandbox Code Playgroud)
  • 重启集群

  • 在代码中导入pyodbc


sim*_*ias 5

我在使用 pyobdc 连接时遇到了一些问题,我的修复细节在这里:https ://datathirst.net/blog/2018/10/12/executing-sql-server-stored-procedures-on-databricks-pyspark

我认为问题源于设置为 Python 2 安装的 databricks 集群上的 PYTHONPATH。

我怀疑这些行:

%sh    
apt-get -y install unixodbc-dev
/databricks/python/bin/pip install pyodbc
Run Code Online (Sandbox Code Playgroud)

会为你工作。

更新:更简单(尽管您仍然需要上面的 unixodbc-dev):

%sh 
sudo apt-get install python3-pip -y
pip3 install --upgrade pyodbc
Run Code Online (Sandbox Code Playgroud)