从 Azure Databricks Notebook 访问 SQL Server

Posted

技术标签:

【中文标题】从 Azure Databricks Notebook 访问 SQL Server【英文标题】:Accessing SQL Server from the Azure Databricks Notebook 【发布时间】:2019-11-13 11:50:30 【问题描述】:

我正在使用 Azure Databricks 笔记本并访问 Azure 平台上提供的 SQL Server。 我正在将 Spark 数据框添加到表“TableName”中。 下面是从 Azure Databricks 笔记本连接数据并将数据保存到 SQL Server DB 的示例代码:

val jdbc_url = sql-db-connection-string
val user = sql-db-username
val password = sql-db-password
val connectionProperties = new Properties()
connectionProperties.put("user", user)
connectionProperties.put("password", password)  
MyDataFrame.coalesce(1).write.mode("append")jdbc(jdbc_url, "SchemaName.TableName", connectionProperties)

现在的问题是:- 虽然我能够将数据插入到表中,但我不知道它在内部是如何工作的。 以下是 Databricks 发布的用于访问 SQL Server 等的文档。但没有提到它 1) 如何建立连接和 2) 它如何关闭连接? 3)如果它没有自动关闭,那么我应该编写什么代码来关闭连接。 establish-connectivity-to-sql-server

请注意:我将 Scala 用于 Spark 框架。

【问题讨论】:

【参考方案1】:

1) 连接是通过 JDBC 建立的。 Databricks 中提供了用于 Microsoft SQL Server 或 Azure SQL DB 的 JDBC 驱动程序。我们可以使用

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")

2) 输入/输出格式本身将负责关闭连接。这里 jdbc 是格式,它负责关闭连接。有关代码级别的更多信息,您可以查看 spark 源代码。

【讨论】:

一个连接可以跨不同的笔记本使用吗? ***.com/questions/61897657/…@madhu

以上是关于从 Azure Databricks Notebook 访问 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

作业终止后如何将生成的文件从 Azure Databricks 导出到 Azure DevOps?

使用 /mnt/ 将数据从 Azure Blob 存储读取到 Azure Databricks

使用 Databricks 将文件从 Azure 文件移动到 ADLS Gen 2 并返回

将数据表从 Databricks dbfs 导出到 azure sql 数据库

从 Azure Databricks 读取 Azure Datalake Gen2 映像

无法从 azure databricks 在 azure data Lake 中保存文件