如何在 Python 中从 Azure Databricks 插入 Azure SQL 数据库
Posted
技术标签:
【中文标题】如何在 Python 中从 Azure Databricks 插入 Azure SQL 数据库【英文标题】:How to INSERT INTO Azure SQL database from Azure Databricks in Python 【发布时间】:2019-04-01 09:19:34 【问题描述】:由于 pyodbc 无法安装到 Azure databricks,我正在尝试使用 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 编写插入代码。 谢谢。
【问题讨论】:
【参考方案1】:如果我可以补充,您还应该能够使用 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")
【讨论】:
【参考方案2】:由于 pyodbc 无法安装到 Azure 数据块
其实你可以在databricks中安装pyodbc。
%sh
apt-get -y install unixodbc-dev
/databricks/python/bin/pip install pyodbc
更多详情可以参考answer和blog。
【讨论】:
@jay wang,谢谢,它成功了,另外我需要添加 '%sh curl packages.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' on [link] (datathirst.net/blog/2018/10/12/…)【参考方案3】:支持 Jon ... 这是我用来将数据从 Azure Databricks 数据帧写入 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")
【讨论】:
以上是关于如何在 Python 中从 Azure Databricks 插入 Azure SQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章
您如何在功能应用程序中从Azure Key Vault引用密钥?
如何在 Spring Boot 中从 Azure SAML 2.0 应用程序获取角色或组
如何在 Web 应用程序中从 Azure AD 刷新 ID 令牌?
在 Azure Logic App 中从 JSON 转换为 XML 时如何防止按字母排序