什么是 Databricks Connect?
注意
本文介绍适用于 Databricks Runtime 13.3 LTS 及更高版本的 Databricks Connect。
有关旧版 Databricks Connect 的信息,请参阅适用于 Databricks Runtime 12.2 LTS 及更低版本的 Databricks Connect。
Databricks Connect 适用于以下语言:
概述
使用 Databricks Connect,可将热门 IDE(例如 Visual Studio Code、PyCharm、RStudio Desktop、IntelliJ IDEA、笔记本服务器和其他自定义应用程序)连接到 Azure Databricks 计算。 本文介绍 Databricks Connect 的工作原理。
注意
适用于 Visual Studio Code 的 Databricks 扩展包括 Databricks Connect,因此如果已安装适用于 Visual Studio Code 的 Databricks 扩展,则无需安装 Databricks Connect。 请参阅使用 Databricks Connect 为 Visual Studio Code 的 Databricks 扩展调试代码。
Databricks Connect 是一个适用于 Databricks Runtime 的客户端库。 借助它,你可使用 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 Runtime 13.3 LTS 及更高版本,Databricks Connect 现在构建于开源 Spark Connect 之上。 Spark Connect 为 Apache Spark 引入了一种解耦的客户端-服务器体系结构,允许使用数据帧 API 和未解析的逻辑计划作为协议来远程连接到 Spark 群集。 有了基于 Spark Connect 的新体系结构,Databricks Connect 将成为一个简单易用的瘦客户端。 可在任何位置(IDE、笔记本和应用程序中)嵌入 Spark Connect 以连接到 Azure Databricks,使个人用户与合作伙伴能够基于 Databricks 平台构建新的(交互式)用户体验。 有关 Spark Connect 的详细信息,请参阅 Spark Connect 简介。
如下图所示,Databricks Connect 确定代码运行和调试的位置。
关于运行代码:所有代码都在本地运行,而涉及 DataFrame 操作的代码在远程 Azure Databricks 工作区中的群集上运行,运行响应发送回给本地调用方。
关于调试代码:所有代码均在本地调试,而所有 Spark 代码则继续在远程 Azure Databricks 工作区中的群集上运行。 无法直接从客户端对核心 Spark 引擎代码进行调试。
后续步骤
- 若要开始使用 Python 开发 Databricks Connect 解决方案,请先学习适用于 Python 的 Databricks Connect 教程。
- 要开始使用 R 开发 Databricks Connect 解决方案,请先学习适用于 R 的 Databricks Connect 教程。
- 若要开始使用 Scala 开发 Databricks Connect 解决方案,请先学习适用于 Scala 的 Databricks Connect 教程。