如何在Python中从azuredatabricks插入到azuresql数据库

2024-10-01 07:41:14 发布

您现在位置:Python中文网/ 问答频道 /正文

由于pyodbc不能安装到azuredatabricks,我尝试使用jdbc通过Python将数据插入到azuresql数据库中,但是我可以找到它的示例代码。在

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编写插入代码。 谢谢。在


Tags: 数据代码testformatvalpassworddatabasepyodbc
3条回答

Since pyodbc cannot be installed to Azure databricks

实际上,似乎可以在databricks中安装pyodbc。在

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

有关详细信息,可以参考这个answer和这个blog。在

背着乔恩。。。这是我用来将数据从Azure databricks dataframe写入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")

如果我可以补充,你也应该能够使用Spark数据帧来插入azuresql。只需使用从azuresql获取的连接字符串。在

connectionString = "<Azure SQL Connection string>"

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

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

相关问题 更多 >