python - 在 azure databricks 上使用 python 将数据写入 azure sql
问题描述
我是 databricks 的新手,我需要安排一些代码来使用 python 将数据转换和写入 azure sql 数据库。
我收到以下错误: DBAPIError: (pyodbc.Error) ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")
在本地运行代码可以正常工作并将数据写入 azure sql db。
下面是我的代码示例
server = "example.database.windows.net"
database = ""
username = ""
password = ""
driver = '{ODBC Driver 17 for SQL Server}'
odbc_str = 'DRIVER='+driver+';SERVER='+server+';PORT=1433;UID='+username+';DATABASE='+ database + ';PWD='+ password
connect_str = 'mssql+pyodbc:///?odbc_connect=' + urllib.parse.quote_plus(odbc_str)
engine = create_engine(connect_str)
df = pd.DataFrame({"Def": [1,2,3,4,5]})
def to_sql(df, table):
df.to_sql(table, engine, if_exists = "replace", index=False, chunksize = 100)
to_sql(df, "Def")
解决方案
默认情况下,Azure Databricks 没有安装 ODBC 驱动程序。
在运行上述命令之前,请确保您已经安装了 MY SQL ODBC 驱动程序。
在单个单元格中运行以下命令以在 Azure Databricks 群集上安装 MY SQL ODBC 驱动程序。
%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
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get -q -y install msodbcsql17
推荐阅读
- java - 建立新的 ArrayQueue 以保持通用
- python - 在 flask-pymongo 中创建身份验证子用户
- c++ - 在 Visual Studio 2017 中使用所有标题获取错误 E1696
- powershell - 如何在 Powershell 中 HTTP PUT 文件并捕获响应正文?
- python - 我可以在 Python 中创建一个简单的小型数据库吗?
- r - ggplot:重新排序多面(棒棒糖)图
- javascript - else 语句中预期的声明或语句
- c# - 如何通过特定的适配器在 C# 中发送 ping?
- angular - Angular Datepicker无缘无故无效
- c - 将字符输入转换为十进制输出 - 不明白