在 Azure Databricks 中,我想将一些数据帧作为表插入 SQL 数据库中。如何使用 python 的服务主体将 Azure Databricks 与 Azure SQL 数据库连接?
我搜索了类似的内容:
jdbcHostname = "..."
jdbcDatabase = "..."
jdbcPort = ...
jdbcUrl = "jdbc:sqlserver://{0}:{1};database={2}".format(jdbcHostname, jdbcPort, jdbcDatabase)
connectionProperties = {
"user" : "...",
"password" : "...",
"driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
}
但发现与Python无关。我该怎么做 ?也许使用像下面这样的 pyspark ?
hostname = "<servername>.database.windows.net"
server_name = "jdbc:sqlserver://{0}".format(hostname)
database_name = "<databasename>"
url = server_name + ";" + "databaseName=" + database_name + ";"
print(url)
table_name = "<tablename>"
username = "<username>"
password = dbutils.secrets.get(scope='', key='passwordScopeName')
最佳答案
要连接到 Azure SQL 数据库,您需要安装 SQL Spark Connector和 Microsoft Azure Active Directory Authentication Library for Python .
转到 Databricks 中的集群并安装 来自 Maven 的 com.microsoft.azure:spark-mssql-connector_2.12_3.0:1.0.0-alpha 和 adal 来自 PyPI。 确保已分配 Key Vault 的客户端 ID 和 key
Azure SQL
应用需要登录权限到Azure SQL才能访问该对象。 为对象创建服务主体,然后授予其对底层对象的权限,在下面的示例中,我授予服务主体对 dbo 架构的选择权限。 代码示例位于引用。
我们还将在数据库中创建一个表
Azure SQL Snippet:
引用:
https://www.thedataswamp.com/blog/databricks-connect-to-azure-sql-with-service-principal
https://learn.microsoft.com/en-us/sql/connect/spark/connector?view=sql-server-ver15
关于azure - 我们如何使用 python 的服务主体将 databricks 连接到 SQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71858495/