繁体   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