如何在此处显示的代码中将 AAD 会话值放在密码和用户名上:
import com.microsoft.azure.sqldb.spark.config.Config
import com.microsoft.azure.sqldb.spark.connect._
val config = Config(Map(
"url" -> "kkk-server.database.windows.net:1433",
"databaseName" -> "MyDatabase",
"dbTable" -> "dbo.Clients",
"user" -> "AD-account",
"password" -> "xxxxxxxx",
"connectTimeout" -> "5", //seconds
"queryTimeout" -> "5" //seconds
))
val collection = spark.read.sqlDB(config)
collection.show()
您可以在 Azure Databricks 中使用适用于 SQL Server 和 Azure SQL 数据库的 Spark 连接器。
适用于 SQL Server 和 Azure SQL 数据库的 Spark 连接器还支持 Azure Active Directory (AAD) 身份验证。它允许你使用 AAD 帐户从 Azure Databricks 安全地连接到 Azure SQL 数据库。它提供与内置 JDBC 连接器类似的接口。示例如下:
import com.microsoft.azure.sqldb.spark.config.Config
import com.microsoft.azure.sqldb.spark.connect._
val config = Config(Map(
"url" -> "mysqlserver.database.windows.net",
"databaseName" -> "MyDatabase",
"user" -> "username ",
"password" -> "*********",
"authentication" -> "ActiveDirectoryPassword",
"encrypt" -> "true"
))
val collection = sqlContext.read.SqlDB(config)
collection.show()
更多详细信息,请参阅:
使用 AAD 身份验证将 Spark 连接到 Azure SQL 数据库
希望这有帮助。
如果您在 Azure Databricks 上尝试 AAD 身份验证,您可能会收到错误“此驱动程序未配置为集成身份验证”或类似的错误消息。
尽管可以在 Azure Data Lake 中使用 AAD。
remote_table = (spark.read
.format("sqlserver")
.option("host", "<YOUR-HOST-HERE>")
.option("user", "<YOUR-USERNAME-HERE>")
.option("password", "<YOUR-PASSWORD-HERE>")
.option("database", "<YOUR-DATABASE-HERE>")
.option("dbtable", "<YOUR-SCHEMA-HERE>.<YOUR-TABLE-HERE>") # (if schema is not provided, it is defaulted to "dbo")
.option("authentication", "ActiveDirectoryPassword")
.load()
)