簡體   English   中英

如何使用Python從Azure Databricks插入Azure SQL數據庫

[英]How to INSERT INTO Azure SQL database from Azure Databricks in Python

由於無法將pyodbc安裝到Azure數據塊,因此我嘗試使用jdbc通過Python將數據插入Azure SQL數據庫,但是我可以找到該示例代碼。

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編寫插入代碼。 謝謝。

由於無法將pyodbc安裝到Azure數據塊

實際上,您似乎可以在databricks中安裝pyodbc。

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

有關更多詳細信息,您可以參考此答案和此博客

如果可以添加的話,您還應該能夠使用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")

支持Jon ...這是我用來將數據從Azure數據塊數據幀寫入Azure SQL數據庫的方法:

    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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM