Поскольку 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. Спасибо.






Если я могу добавить, вы также должны иметь возможность использовать фрейм данных 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")
@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/…)