从 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 数据库