跨多个笔记本的 Databricks SQL Server 连接

Posted

技术标签:

【中文标题】跨多个笔记本的 Databricks SQL Server 连接【英文标题】:Databricks SQL Server connection across multiple notebooks 【发布时间】:2020-05-19 17:57:10 【问题描述】:

我找到了一些 resources,了解如何在 pySpark databricks 笔记本之间传递变量。我很好奇我们是否可以通过 SQL Server 连接,例如在 Notebook A 中有 host/database/port/user/pw 并在 Notebook B 上调用连接。

【问题讨论】:

这能回答你的问题吗? 【参考方案1】:

查看 Databricks 文档的那部分:https://docs.databricks.com/notebooks/notebook-workflows.html#pass-structured-data。 这样,您可以跨笔记本传递一个或多个字符串,但您必须在笔记本 B 中手动创建连接。

其他选项 - 创建笔记本 A,它创建一个连接变量,并在笔记本 B 中执行一些代码之前“运行”它(更多详细信息在这里 - https://forums.databricks.com/questions/154/can-i-run-one-notebook-from-another-notebook.html)。基本上,您需要一个带有代码的单元格:

%run path/to/notebookA

【讨论】:

我还没有让它为 SQL 连接工作。我收到错误 "Failed to parse %run commad: string matching regex..." 。我的 SQL 连接键和字符串在 NotebookA 中。 & 在 NotebookB 中使用您的代码 @Rayan Ral 带有此代码的单元格应该只有这个 %run 命令,没有别的。请确保该单元格中没有其他代码。 我不确定它是否适用于 sql 连接字符串。它确实适用于功能。你熟悉 Databricsk dbutils.notebook.exit 吗?***.com/questions/62290836/…@Rayan Ral 无法解析 %run 命令:找到匹配正则表达式 \$[\w_]+' expected but V' 的字符串)堆栈跟踪:/Users/abc@abc/version2:python @Rayan Ral

以上是关于跨多个笔记本的 Databricks SQL Server 连接的主要内容,如果未能解决你的问题,请参考以下文章

Databricks getArgument 值不能在 Spark SQL IN 子句中使用

从 Azure Databricks Notebook 访问 SQL Server

将 Azure Databricks 增量表迁移到 Azure Synapse SQL 池

如果 Databricks 或 Spark SQL 中存在表,则插入

基于 Databricks Spark SQL 子查询的查询抛出 TreeNodeException

Azure Databricks 到 Azure SQL DW:长文本列