использование pyodb c в azure databrick для подключения к серверу SQL - PullRequest
0 голосов
/ 25 мая 2020
import pyodbc    

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

при выполнении вышеуказанного кода в блокноте с данными я получаю следующую ошибку

Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL SERVER' : file not found (0) (SQLDriverConnect)")

Ответы [ 2 ]

1 голос
/ 27 мая 2020

То, что вы разместили, выглядит как прямой Python код. В среде Databricks все немного иначе, чем на вашем локальном компьютере.

Попробуйте вот так.

import pyodbc
server = '<server>.database.windows.net'
database = '<database>'
username = '<username>'
password = '<password>'
driver= '{ODBC Driver 17 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName FROM [SalesLT].[ProductCategory] pc JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid")
row = cursor.fetchone()
while row:
    print (str(row[0]) + " " + str(row[1]))
    row = cursor.fetchone()
1 голос
/ 26 мая 2020

По умолчанию Azure Databricks не имеет установленного драйвера ODB C.

Для SQL сервера: Вы можете решить проблему, используя следующий сценарий

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 SQL База данных: Выполните следующие команды в одной ячейке, чтобы установить MY SQL ODB C Driver в Azure кластере 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

enter image description here

...