在集群上安裝pyodbc時出錯

了解如何排除在Databricks集群上安裝pyodbc時的錯誤。

寫的亞當Pavlacka

最後發布日期:2022年5月11日

問題

使用時,會發生以下錯誤之一皮普安裝pyodbc圖書館。

java.lang.RuntimeException:安裝失敗,提示:正在收集pyodbc
"由於缺少依賴項,庫安裝失敗。sasl和thrift_sasl是sasl或Kerberos支持的可選依賴項。

導致

雖然sasl而且thrift_sasl是SASL或Kerberos支持的可選依賴項,它們需要為pyodbc安裝成功。

解決方案

集群範圍的初始化腳本方法

您可以將這些命令放入單個init腳本中,並將其附加到集群。這確保在集群啟動之前安裝pyodbc的依賴庫。

  1. 如果基本目錄不存在,則創建用於存儲初始化腳本的基本目錄。在這裏,使用dbfs: /磚/ <目錄>舉個例子。
    % sh dbutils.fs.mkdirs(“dbfs: /磚/ <目錄> /”)
  2. 創建腳本並將其保存到一個文件中。
    %sh dbutls .fs.put("dbfs:/databricks//tornado.sh",""" #!/bin/bash pip list | egrep 'thrift-sasl|sasl' pip install——upgrade thrift dpkg -l | egrep 'thrift_sasl|libsasl2-dev|gcc|python-dev' sudo apt-get -y install unixodbc-dev libsasl2-dev gcc python-dev """,True)
  3. 檢查腳本是否存在。
    % python顯示器(dbutils.fs.ls(“dbfs: /磚/ <目錄> / tornado.sh”))
  4. 2 .在集群配置界麵,單擊高級選項切換。
  5. 在頁麵底部,單擊Init腳本選項卡。
    初始化腳本UI映像。
  6. 目的地下拉,選擇“DBFS”,提供腳本的文件路徑,單擊添加
  7. 重新啟動集群。

有關集群範圍的初始化腳本的詳細信息,請參見集群範圍的初始化腳本(AWS|Azure|GCP).

筆記本的方法

  1. 在筆記本上,檢查版本節儉並升級到最新版本。
    %sh PIP list | egrep 'thrift-sasl|sasl' PIP install——upgrade thrift . sh PIP list | egrep 'thrift-sasl|sasl' PIP install——upgrade thrift . sh
  2. 確保已安裝依賴包。
    %sh DPKG -l | egrep 'thrift_sasl|libsasl2-dev|gcc|python-dev'
  3. 安裝nnixodbc在安裝之前pyodbc
    %sh sudo apt-get -y install unixodbc-dev libsasl2-dev GCC python-dev . sh
這篇文章有用嗎?