[英]Automatically install pyodbc on a Databricks cluster upon each restart
我一直在我的一個 Databricks 集群上使用 pyodbc,並且一直使用在我的筆記本的第一個單元中運行的這個 shell 命令來安裝它:
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
apt-get update
ACCEPT_EULA=Y apt-get install msodbcsql17
apt-get -y install unixodbc-dev
sudo apt-get install python3-pip -y
pip3 install --upgrade pyodbc
這工作正常,但每次運行集群並打算使用 pyodbc 時我都必須執行它。 我一直通過將這段代碼作為每個使用 pyodbc 的筆記本的第一個單元格來做到這一點。 為了解決這個問題,我嘗試將此代碼保存為 .sh 文件,將其上傳到 dbfs,然后將其添加為我的集群的 init 文件之一。 運行下面給出的代碼后:
cnxn1 = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+jdbcHostname+';DATABASE='+jdbcDatabase+';UID='+username1+';PWD='+ password1)
我收到以下錯誤:
('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")
我的 shell 命令/初始化腳本有什么問題導致了這個問題。 任何幫助將不勝感激。 謝謝!
這是推薦的方法。
像這樣創建文件:
dbutils.fs.put("dbfs:/databricks/scripts/pyodbc-install.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
apt-get update
ACCEPT_EULA=Y apt-get install msodbcsql17
apt-get -y install unixodbc-dev
sudo apt-get install python3-pip -y
pip3 install --upgrade pyodbc""", True)
點擊編輯:
向下展開高級選項 > 初始化腳本
然后你可以點擊確認。
現在,此腳本將在您的集群啟動時執行,並使 pyodbc 在連接到它的所有筆記本上可用。
你是怎么做到的?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.