如何在Databricks中安装PYODBC

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

我必须在 Databricks 中安装 pyodbc 模块。 我尝试过使用此命令(

pip install pyodbc
),但由于以下错误而失败。

错误信息

python-3.x pyodbc databricks azure-databricks
4个回答
11
投票

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

  • 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
  • 在笔记本中运行它
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


6
投票

我不久前使用 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

1
投票

右键单击要存储库的工作区文件夹。

选择“创建”>“库”。

查看此https://docs.databricks.com/user-guide/libraries.html了解详细信息


0
投票

以下内容适用于我,作为 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

© www.soinside.com 2019 - 2024. All rights reserved.