在azure databrick中使用pyodbc连接SQL server

在azure databrick中使用pyodbc连接SQL server,pyodbc,databricks,azure-databricks,Pyodbc,Databricks,Azure Databricks,在databrick笔记本中运行上述代码时,我遇到以下错误 import pyodbc pyodbc.connect('Driver={SQL SERVER};' 'Server=server name;' 'Database = database name;' 'UID='my uid;' 'PWD= 'my password;'

在databrick笔记本中运行上述代码时,我遇到以下错误

import pyodbc    

pyodbc.connect('Driver={SQL SERVER};'
                  'Server=server name;'
                  'Database = database name;'
                  'UID='my uid;'
                  'PWD= 'my password;'
                  'Authentication = ActiveDirectoryPassword')

默认情况下,Azure Databricks没有安装ODBC驱动程序

对于SQL Server:您可以使用以下脚本解决此问题

Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL SERVER' : file not found (0) (SQLDriverConnect)")
对于Azure SQL数据库:在单个单元格中运行以下命令,以便在Azure Databricks群集上安装我的SQL ODBC驱动程序

sudo apt-get -q -y install unixodbc unixodbc-dev
sudo apt-get -q -y install python3-dev
sudo pip install --upgrade pip
pip install pyodbc
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 msodbcsql

默认情况下,Azure Databricks没有安装ODBC驱动程序

对于SQL Server:您可以使用以下脚本解决此问题

Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL SERVER' : file not found (0) (SQLDriverConnect)")
对于Azure SQL数据库:在单个单元格中运行以下命令,以便在Azure Databricks群集上安装我的SQL ODBC驱动程序

sudo apt-get -q -y install unixodbc unixodbc-dev
sudo apt-get -q -y install python3-dev
sudo pip install --upgrade pip
pip install pyodbc
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 msodbcsql

您发布的内容看起来像是纯Python代码。在Databricks环境中,情况与本地机器上的情况略有不同

像这样试试

%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
导入pyodbc
服务器='.database.windows.net'
数据库=“”
用户名=“”
密码=“”
驱动程序=“{SQL Server的ODBC驱动程序17}”
cnxn=pyodbc.connect('DRIVER='+DRIVER+';SERVER='+SERVER+';PORT=1433;DATABASE='+DATABASE+';UID='+username+';PWD='+password)
cursor=cnxn.cursor()
cursor.execute(“从[SalesLT].[ProductCategory]pc加入[SalesLT].[Product]p在pc.productcategoryid=p.productcategoryid上选择前20名pc.Name作为CategoryName,p.Name作为产品名称”)
row=cursor.fetchone()
而行:
打印(str(第[0]行)+“”+str(第[1]行))
row=cursor.fetchone()

您发布的内容看起来像是纯Python代码。在Databricks环境中,情况与本地机器上的情况略有不同

像这样试试

%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
导入pyodbc
服务器='.database.windows.net'
数据库=“”
用户名=“”
密码=“”
驱动程序=“{SQL Server的ODBC驱动程序17}”
cnxn=pyodbc.connect('DRIVER='+DRIVER+';SERVER='+SERVER+';PORT=1433;DATABASE='+DATABASE+';UID='+username+';PWD='+password)
cursor=cnxn.cursor()
cursor.execute(“从[SalesLT].[ProductCategory]pc加入[SalesLT].[Product]p在pc.productcategoryid=p.productcategoryid上选择前20名pc.Name作为CategoryName,p.Name作为产品名称”)
row=cursor.fetchone()
而行:
打印(str(第[0]行)+“”+str(第[1]行))
row=cursor.fetchone()

您正在连接Azure SQL DB吗?请分享您遇到的错误消息,好吗,我遵循此链接,将Driver={SQL Driver}更改为Driver={ODBC Driver 17 for SQL Server}现在我收到了此错误:('HYT00','[HYT00][unixODBC][Microsoft][ODBC Driver 17 for SQL Server]登录超时已过期(0)(SQLDriverConnect)')问题似乎与网络有关。我要求您检查传递的连接字符串并重新运行。代码正确,需要创建功能帐户以连接SQL server。。一切正常..您正在连接Azure SQL DB吗?请分享您遇到的错误消息,好吗,我遵循此链接,将Driver={SQL Driver}更改为Driver={ODBC Driver 17 for SQL Server}现在我收到了此错误:('HYT00','[HYT00][unixODBC][Microsoft][ODBC Driver 17 for SQL Server]登录超时已过期(0)(SQLDriverConnect)')问题似乎与网络有关。我要求您检查传递的连接字符串并重新运行。代码正确,需要创建功能帐户以连接SQL server。。一切都很顺利。。