簡體   English   中英

每次重啟時自動在 Databricks 集群上安裝 pyodbc

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM