問題
使用時,會發生以下錯誤之一皮普安裝pyodbc圖書館。
java.lang.RuntimeException:安裝失敗,提示:正在收集pyodbc
"由於缺少依賴項,庫安裝失敗。sasl和thrift_sasl是sasl或Kerberos支持的可選依賴項。
導致
雖然sasl而且thrift_sasl是SASL或Kerberos支持的可選依賴項,它們需要為pyodbc安裝成功。
解決方案
集群範圍的初始化腳本方法
您可以將這些命令放入單個init腳本中,並將其附加到集群。這確保在集群啟動之前安裝pyodbc的依賴庫。
- 如果基本目錄不存在,則創建用於存儲初始化腳本的基本目錄。在這裏,使用dbfs: /磚/ <目錄>舉個例子。
% sh dbutils.fs.mkdirs(“dbfs: /磚/ <目錄> /”)
- 創建腳本並將其保存到一個文件中。
%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) - 檢查腳本是否存在。
% python顯示器(dbutils.fs.ls(“dbfs: /磚/ <目錄> / tornado.sh”))
- 2 .在集群配置界麵,單擊高級選項切換。
- 在頁麵底部,單擊Init腳本選項卡。
- 在目的地下拉,選擇“DBFS”,提供腳本的文件路徑,單擊添加.
- 重新啟動集群。
有關集群範圍的初始化腳本的詳細信息,請參見集群範圍的初始化腳本(AWS|Azure|GCP).
筆記本的方法
- 在筆記本上,檢查版本節儉並升級到最新版本。
%sh PIP list | egrep 'thrift-sasl|sasl' PIP install——upgrade thrift . sh PIP list | egrep 'thrift-sasl|sasl' PIP install——upgrade thrift . sh
- 確保已安裝依賴包。
%sh DPKG -l | egrep 'thrift_sasl|libsasl2-dev|gcc|python-dev'
- 安裝nnixodbc在安裝之前pyodbc.
%sh sudo apt-get -y install unixodbc-dev libsasl2-dev GCC python-dev . sh