什么是 Databricks Connect?

注意

本文介绍适用于 Databricks Runtime 13.3 LTS 及更高版本的 Databricks Connect。

有关旧版 Databricks Connect 的信息,请参阅适用于 Databricks Runtime 12.2 LTS 及更低版本的 Databricks Connect

Databricks Connect 是 Databricks Runtime 的客户端库,可用于将常用的 IDE(如 Visual Studio Code、PyCharm、RStudio Desktop、IntelliJ IDEA、笔记本服务器和其他自定义应用程序)连接到 Azure Databricks 计算。

对于 Databricks Runtime 13.3 LTS 及更高版本,Databricks Connect 是基于开源 Spark Connect 构建的,后者具有适用于 Apache Spark 的分离客户端-服务器体系结构 ,允许使用 DataFrame API 远程连接到 Spark 群集,并将未解析的逻辑计划作为协议。

Databricks Connect 适用于以下语言:

注意

适用于 Visual Studio Code 的 Databricks 扩展包括 Databricks Connect,因此如果已安装适用于 Visual Studio Code 的 Databricks 扩展,则无需安装 Databricks Connect。 请参阅使用 Databricks Connect 为 Visual Studio Code 的 Databricks 扩展调试代码

Databricks Connect 可以做什么?

使用 Databricks Connect,可以使用 Spark API 编写代码,并在 Azure Databricks 计算而不是本地 Spark 会话中远程运行它们。

例如,当你使用 Databricks Connect 运行 DataFrame 命令 spark.read.format(...).load(...).groupBy(...).agg(...).show() 时,该命令的逻辑表示形式将发送到在 Azure Databricks 中运行的 Spark 服务器,以便在远程计算上执行。

Databricks Connect 使你能够:

  • 通过任何 Python、R 或 Scala 应用程序运行大规模 Spark 代码。 现在,你可以在任何能够执行 import pyspark (Python)、library(sparklyr) (R) 或 import org.apache.spark (Scala) 的位置直接从应用程序运行 Spark 代码,而无需安装任何 IDE 插件或使用 Spark 提交脚本。

    注意

    适用于 Databricks Runtime 13.3 LTS 及更高版本的 Databricks Connect 支持运行 Python 应用程序。 R 和 Scala 仅在适用于 Databricks Runtime 13.3 LTS 及更高版本的 Databricks Connect 中受支持。

  • 即使使用远程群集,也要在 IDE 中单步执行和调试代码。

  • 开发库时快速循环访问。 在 Databricks Connect 中更改 Python 或 Scala 库依赖项后,无需重启群集,这是因为群集中的每个客户端会话彼此隔离。

  • 关闭空闲群集而不丢失工作。 客户端应用程序与群集是分离的,因此它不受群集重启或升级的影响,这通常会导致你丢失笔记本中定义的所有变量、RDD 和 DataFrame 对象。

代码在何处运行?

如下图所示,Databricks Connect 确定代码运行和调试的位置。

图中显示的是 Databricks Connect 代码运行和调试的位置

关于运行代码:所有代码都在本地运行,而涉及 DataFrame 操作的代码在远程 Azure Databricks 工作区中的群集上运行,运行响应发送回给本地调用方。

关于调试代码:所有代码均在本地调试,而所有 Spark 代码则继续在远程 Azure Databricks 工作区中的群集上运行。 无法直接从客户端对核心 Spark 引擎代码进行调试。

后续步骤