注意
本文介绍 sparklyr 如何与 Databricks Connect 集成,该连接适用于 Databricks Runtime 13.0 及更高版本。 Databricks 既不提供,也不直接支持此集成。
如有问题,请转到 Posit 社区。
若要报告问题,请转到 GitHub 中 存储库的 sparklyr 部分。
有关详细信息,请参阅 Databricks Connect v2 在sparklyr文档中的。
Databricks Connect 使你能够将常用 IDE(如 RStudio Desktop、笔记本服务器和其他自定义应用程序)连接到Azure Databricks群集。 请参阅 Databricks Connect。
注意
Databricks Connect 与 Apache Spark MLlib 的兼容性有限,因为 Spark MLlib 使用 RDD,而 Databricks Connect 仅支持 DataFrame API。 若要使用 sparklyr 的所有 Spark MLlib 函数,请使用 Databricks 笔记本或db_replbrickster 包中的函数。
本文演示如何快速开始使用用于 R 的 sparklyr Databricks Connect 和 RStudio Desktop。
- 有关 Databricks Connect for Python,请参阅 Databricks Connect for Python。
- 有关用于 Scala 的 Databricks Connect,请参阅 Databricks Connect for Scala。
教程
在以下教程中,你将在 RStudio 中创建一个项目,安装和配置 Databricks Connect for Databricks Runtime 13.3 LTS 及更高版本,并在 RStudio 的 Databricks 工作区中的计算上运行简单代码。 有关本教程的补充信息,请参阅 Spark Connect, 和 Databricks Connect v2 网站上的“Databricks Connect”部分。
本教程使用 RStudio Desktop 和 Python 3.10。 如果尚未安装它们,安装 R 和 RStudio Desktop 和 Python 3.10。
要求
若要完成此教程,必须满足以下要求:
- 目标 Azure Databricks 工作区和群集必须满足 Databricks Connect 的计算配置要求。
- 必须提供群集 ID。 若要获取你的群集 ID,请在工作区中单击边栏上的“计算”,然后单击群集的名称。 在 Web 浏览器的地址栏中,复制 URL 中
clusters和configuration之间的字符串。
步骤 1:创建个人访问令牌
注意
用于 R 身份验证的 Databricks Connect 目前仅支持Azure Databricks个人访问令牌。
本教程使用 Azure Databricks 个人访问令牌身份验证对Azure Databricks工作区进行身份验证。
如果已有Azure Databricks个人访问令牌,请跳到步骤 2。 如果不确定是否已拥有Azure Databricks个人访问令牌,则可以按照此步骤操作,而不会影响用户帐户中任何其他Azure Databricks个人访问令牌。
若要创建个人访问令牌,请按照 为工作区用户创建个人访问令牌中的步骤作。
步骤 2:创建项目
- 启动 RStudio Desktop。
- 在主菜单上,单击“File >新建Project。
- 选择“新建目录”。
- 选择 New Project。
- 对于目录名称和创建项目作为子目录,请输入新项目目录的名称以及创建新项目目录的位置。
- 选择“将 renv 与此项目配合使用”。 如果系统提示安装更新的
renv包版本,请单击“是”。 - 单击 Create Project。
步骤 3:添加 Databricks Connect 包和其他依赖项
在 RStudio Desktop 主菜单上,单击“工具”>“安装包”。
将安装来源保持为存储库 (CRAN)。
对于包,请输入以下包列表,这些包是 Databricks Connect 包和本教程的前置条件:
sparklyr,pysparklyr,reticulate,usethis,dplyr,dbplyr将“安装到库”保持设置为 R 虚拟环境。
确保已选择“安装依赖项”。
单击“安装” 。
当“控制台”视图中提示你(“视图”“将焦点移到控制台”)继续安装时,请输入 >。
YR 虚拟环境中安装了sparklyr和pysparklyr包及其依赖项。在 Console 窗格中,使用
reticulate运行以下命令安装Python。 (用于 R 的 Databricks Connect 需要先安装reticulate和Python。在以下命令中,将3.10替换为安装在Azure Databricks群集上的Python版本的主要版本和次要版本。 若要查找此主要版本和次要版本,请参阅 Databricks Runtime 版本和兼容性中群集 Databricks Runtime 版本的发行说明的“系统环境”部分。reticulate::install_python(version = "3.10")在“控制台”窗格中,运行以下命令安装 Databricks Connect 包。 在以下命令中,将
13.3替换为安装在 Azure Databricks 群集上的 Databricks Runtime 版本。 若要查找此版本,请在Azure Databricks工作区的群集详细信息页上,在 Configuration 选项卡上,查看 Databricks Runtime Version 框。pysparklyr::install_databricks(version = "13.3")如果不知道群集的 Databricks Runtime 版本或不想查找它,可以改为运行以下命令,
pysparklyr会查询群集以确定要使用的正确 Databricks Runtime 版本:pysparklyr::install_databricks(cluster_id = "<cluster-id>")如果希望项目稍后连接到另一个具有相同 Databricks Runtime 版本的群集,
pysparklyr将使用相同的 Python 环境。 如果新群集具有不同的 Databricks Runtime 版本,则应使用新的 Databricks Runtime 版本或群集 ID 再次运行pysparklyr::install_databricks命令。
步骤 4:为工作区 URL、访问令牌和群集 ID 设置环境变量
Databricks 不建议您将敏感值或易变更的值(例如 Azure Databricks 工作区 URL、个人访问令牌或群集 ID)硬编码到您的 R 脚本中。 请单独存储这些值,例如存储在本地环境变量中。 本教程使用 RStudio Desktop 的内置支持将环境变量存储在 .Renviron 文件中。
创建一个
.Renviron文件来存储环境变量(如果此文件尚不存在),然后打开此文件进行编辑:在 RStudio Desktop“控制台”中运行以下命令:usethis::edit_r_environ()在出现的
.Renviron文件中(查看> 将焦点移到源),输入以下内容。 在此内容中,替换以下占位符:- 将
<workspace-url>替换为每工作区 URL,例如https://adb-1234567890123456.7.azuredatabricks.net。 - 将
<personal-access-token>替换为步骤 1 中的Azure Databricks个人访问令牌。 - 将
<cluster-id>替换为本教程要求中的群集 ID。
DATABRICKS_HOST=<workspace-url> DATABRICKS_TOKEN=<personal-access-token> DATABRICKS_CLUSTER_ID=<cluster-id>- 将
保存
.Renviron文件。将环境变量加载到 R 中:在主菜单上,单击“会话”>“重启 R”。
步骤 5:添加代码
在 RStudio Desktop 主菜单中,单击“文件”>“新建文件”>“R 脚本”。
在文件中输入以下代码,然后使用命令文件>保存将该文件保存为
demo.R。library(sparklyr) library(dplyr) library(dbplyr) sc <- sparklyr::spark_connect( master = Sys.getenv("DATABRICKS_HOST"), cluster_id = Sys.getenv("DATABRICKS_CLUSTER_ID"), token = Sys.getenv("DATABRICKS_TOKEN"), method = "databricks_connect", envname = "r-reticulate" ) trips <- dplyr::tbl( sc, dbplyr::in_catalog("samples", "nyctaxi", "trips") ) print(trips, n = 5)
步骤 6:运行代码
在 RStudio Desktop 上
文件的工具栏中,单击 源码 。
在“控制台”中,将显示 表的前五行。
trips在连接视图(视图> 显示连接)中,可以浏览可用的目录、架构、表和视图。
步骤 7:调试代码
- 在
demo.R文件中,单击print(trips, n = 5)旁边的行号区域以设置断点。 - 在
demo.R文件的工具栏中,单击“源”。 - 当代码在断点暂停运行时,可以在“环境”视图中检查变量(“查看”“显示环境”)。>
- 在主菜单上,单击“调试”>“继续”。
- 在“控制台”中,将显示 表的前五行。
trips