什么是 Databricks Connect?

注意

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

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

概述

使用 Databricks Connect,可将热门 IDE(例如 Visual Studio Code、PyCharm、RStudio Desktop、IntelliJ IDEA、笔记本服务器和其他自定义应用程序)连接到 Azure Databricks 群集。 本文介绍 Databricks Connect 的工作原理。

Databricks Connect 是一个适用于 Databricks Runtime 的客户端库。 借助它,你可使用 Spark API 编写代码,并让它们在 Azure Databricks 群集上(而不是在本地 Spark 会话中)远程执行。

例如,当你使用 Databricks Connect 运行数据帧命令 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.0 及更高版本的 Databricks Connect 支持运行 Python 应用程序。 R 和 Scala 仅在适用于 Databricks Runtime 13.3 LTS 及更高版本的 Databricks Connect 中受支持。

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

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

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

对于 Databricks Runtime 13.0 及更高版本,Databricks Connect 现在构建于开源 Spark Connect 之上。 Spark Connect 为 Apache Spark 引入了一种解耦的客户端-服务器体系结构,允许使用数据帧 API 和未解析的逻辑计划作为协议来远程连接到 Spark 群集。 这种基于 Spark Connect 的“V2”体系结构使 Databricks Connect 成了一个简单易用的瘦客户端。 可在任何位置(IDE、笔记本和应用程序中)嵌入 Spark Connect 以连接到 Azure Databricks,使个人用户与合作伙伴能够基于 Databricks 平台构建新的(交互式)用户体验。 有关 Spark Connect 的详细信息,请参阅 Spark Connect 简介

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

Figure showing were Databricks Connect code runs and debugs

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

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

后续步骤