Как ВСТАВИТЬ В базу данных Azure SQL из Azure Databricks в Python

Поскольку pyodbc нельзя установить в блоки данных Azure, я пытаюсь использовать jdbc для вставки данных в базу данных Azure SQL с помощью Python, но я могу найти пример кода для этого.

jdbcHostname = "xxxxxxx.database.windows.net"
jdbcDatabase = "yyyyyy"
jdbcPort = 1433
#jdbcUrl = "jdbc:sqlserver://{0}:{1};database = {2};user = {3};password = {4}".format(jdbcHostname, jdbcPort, jdbcDatabase, username, password)

jdbcUrl = "jdbc:sqlserver://{0}:{1};database = {2}".format(jdbcHostname, jdbcPort, jdbcDatabase)
connectionProperties = {
  "user" : jdbcUsername,
  "password" : jdbcPassword,
  "driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
}

pushdown_query = "(INSERT INTO test (a, b) VALUES ('val_a', 'val_b')) insert_test" 

Посоветуйте, пожалуйста, как написать код вставки на Python. Спасибо.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
0
3 102
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Since pyodbc cannot be installed to Azure databricks

На самом деле кажется, что вы можете установить pyodbc в блоки данных.

%sh    
apt-get -y install unixodbc-dev
/databricks/python/bin/pip install pyodbc

Для получения более подробной информации вы можете обратиться к этому отвечать и этому блог.

@jay wang, спасибо, это сработало, и, кроме того, мне нужно было добавить '%sh curl пакеты.microsoft.com/keys/microsoft.asc | apt-key add - curl 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 на [ссылка] (datathirst.net/blog/2018/10/12/…)

sauceishere 02.04.2019 03:11

Если я могу добавить, вы также должны иметь возможность использовать фрейм данных Spark для вставки в Azure SQL. Просто используйте строку подключения, полученную от Azure SQL.

connectionString = "<Azure SQL Connection string>"

data = spark.createDataFrame([(val_a, val_b)], ["a", "b"])

data.write.jdbc(connectionString, "<TableName>", mode = "append")

Поддержка Джона... Это то, что я использовал для записи данных из фрейма данных Azure в базу данных SQL Azure:

    Hostname = "YOUR_SERVER.database.windows.net"
    Database = "YOUR_DB"
    port = 1433
    UN = 'YOUR_USERNAME'
    PW = 'YOUR_PASSWORD'
    Url = "jdbc:sqlserver://{0}:{1};database = {2};user = {3};password= {4}".format(Hostname, Port, Database, UN, PW)

   df.write.jdbc(Url, "schema.table", mode = "append")

Другие вопросы по теме