适用于 Scala 的 Databricks Connect
注意
本文介绍适用于 Databricks Runtime 13.3 LTS 及更高版本的 Databricks Connect。
本文演示如何将 Scala 与IntelliJ IDEA和Scala 插件结合使用以快速开始使用 Databricks Connect。
- 有关本文的 Python 版本,请参阅适用于 Python 的 Databricks Connect。
- 有关本文的 R 版本,请参阅适用于 R 的 Databricks Connect。
可以使用 Databricks Connect 将热门的 IDE(例如 IntelliJ IDEA、笔记本服务器和其他自定义应用程序)连接到 Azure Databricks 群集。 请参阅什么是 Databricks Partner Connect?。
教程
若要跳过此教程并使用其他 IDE,请参阅后续步骤。
要求
若要完成此教程,必须满足以下要求:
目标 Azure Databricks 工作区和群集必须满足 Databricks Connect 群集配置的要求。
必须提供群集 ID。 若要获取你的群集 ID,请在工作区中单击边栏上的“计算”,然后单击群集的名称。 在 Web 浏览器的地址栏中,复制 URL 中
clusters
和configuration
之间的字符串。已在开发计算机上安装 Java 开发工具包 (JDK)。 Databricks 建议使用与 Azure Databricks 群集上的 JDK 版本匹配的 JDK 安装版本。 下表显示了每个受支持的 Databricks Runtime 的 JDK 版本。
Databricks Runtime 版本 JDK 版本 13.3 LTS - 15.0,
13.3 ML LTS - 15.0 MLJDK 8 注意
如果未安装 JDK,或者已在开发计算机上安装多个 JDK,可以稍后在步骤 1 中安装或选择特定的 JDK。 选择低于或高于群集上 JDK 版本的 JDK 安装可能会产生意外结果,或代码完全无法运行。
已安装IntelliJ IDEA。 本教程已使用 IntelliJ IDEA Community Edition 2023.3.6 进行测试。 如果使用不同版本的 IntelliJ IDEA,则以下说明可能有所不同。
已安装适用于 IntelliJ IDEA 的Scala插件。
步骤 1:配置 Azure Databricks 身份验证
本教程使用 Azure Databricks 配置文件在 Azure Databricks 工作区中进行身份验证。 若要改用其他身份验证类型,请参阅配置连接属性。
步骤 2:创建项目
启动 IntelliJ IDEA。
在主菜单上,单击“文件”>“新建”>“项目”。
为项目指定有意义的名称。
对于“位置”,单击文件夹图标,然后完成屏幕说明以指定新 Scala 项目的路径。
对于“语言”,请单击“Scala”。
对于“生成系统”,请单击“sbt”。
在JDK下拉列表中,选择与群集上 JDK 版本匹配的开发计算机上现有的 JDK 安装,或选择“下载 JDK”,然后按照屏幕上的说明下载与群集上 JDK 版本匹配的 JDK。
注意
选择高于或低于群集上 JDK 版本的 JDK 安装可能会产生意外结果,或代码完全无法运行。
在“sbt”下拉列表中,选择最新版本。
在“Scala”下拉列表中,选择与群集上 Scala 版本匹配的 Scala 版本。 下表显示了每个受支持的 Databricks Runtime 的 Scala 版本:
Databricks Runtime 版本 Scala 版本 13.3 LTS - 15.0,
13.3 ML LTS - 15.0 ML2.12.15 注意
选择低于或高于群集上 Scala 版本的 Scala 版本可能会产生意外结果,或代码完全无法运行。
确保选中“Scala”旁边的“下载源”框。
对于“包前缀”,请输入用于项目源的包前缀值,例如
org.example.application
。确保选中“添加示例代码”框。
单击 “创建” 。
步骤 3:添加 Databricks Connect 包
打开新的 Scala 项目,在“项目”工具窗口中(“视图>”“工具 Windows”>“项目”),打开project-name>target中名为
build.sbt
的文件。将以下代码添加到
build.sbt
文件末尾,该文件声明项目对适用于 Scala 的 Databricks Connect 库的特定版本的依赖项:libraryDependencies += "com.databricks" % "databricks-connect" % "14.3.1"
将
14.3.1
替换为与群集上的 Databricks Runtime 版本匹配的 Databricks Connect 库版本。 可以在 Maven 中央存储库中找到 Databricks Connect 库版本号。单击“加载 sbt 更改”通知图标,使用新的库位置和依赖项更新 Scala 项目。
等待至 IDE 底部的
sbt
进度指示器消失。sbt
加载过程可能需要几分钟时间。
步骤 4:添加代码
在“项目”工具窗口中,打开 project-name> src > main > scala中名为
Main.scala
的文件。将文件中的任何现有代码替换为以下代码,然后保存该文件,具体取决于你的配置文件的名称。
如果步骤 1 中的配置文件名称为
DEFAULT
,请将该文件中的任何现有代码替换为以下代码,然后保存该文件:package org.example.application import com.databricks.connect.DatabricksSession import org.apache.spark.sql.SparkSession object Main { def main(args: Array[String]): Unit = { val spark = DatabricksSession.builder().remote().getOrCreate() val df = spark.read.table("samples.nyctaxi.trips") df.limit(5).show() } }
如果步骤 1 中的配置文件名称不为
DEFAULT
,请转而将该文件中的任何现有代码替换为以下代码。 将占位符<profile-name>
替换为步骤 1 中的配置文件的名称,然后保存文件:package org.example.application import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig import org.apache.spark.sql.SparkSession object Main { def main(args: Array[String]): Unit = { val config = new DatabricksConfig().setProfile("<profile-name>") val spark = DatabricksSession.builder().sdkConfig(config).getOrCreate() val df = spark.read.table("samples.nyctaxi.trips") df.limit(5).show() } }
步骤 5:运行代码
- 在远程 Azure Databricks 工作区中启动目标群集。
- 群集启动后,在主菜单上,单击“运行”>“运行 "Main"”。
- 在“运行”工具窗口(“查看>”“工具窗口”“>运行”)的“主”选项卡中,将显示
samples.nyctaxi.trips
表的前 5 行。
步骤 6:调试代码
- 目标群集仍在运行中,在前面的代码中,单击
df.limit(5).show()
旁边的装订线以设置断点。 - 在主菜单上,单击“运行”>”调试‘Main’“。
- 在“调试”工具窗口(“视图>”“工具 Windows”“>调试”)的“控制台”选项卡中,单击计算器(“计算表达式”)图标。
- 输入表达式
df.schema
,然后单击“计算”以显示 DataFrame 的架构。 - 在“调试”工具窗口的侧栏中,单击绿色箭头(恢复程序)图标。
- 在“控制台”窗格中,将显示
samples.nyctaxi.trips
的前 5 行。
后续步骤
若要了解有关 Databricks Connect 的详细信息,请参阅如下文章:
若要使用 Azure Databricks 个人访问令牌以外的 Azure Databricks 身份验证类型,请参阅配置连接属性。
若要使用其他 IDE,请参阅以下内容:
若要查看更多简单的代码示例,请参阅适用于 Scala 的 Databricks Connect 代码示例。
若要查看更复杂的代码示例,请参阅 GitHub 中的 Databricks Connect 示例应用程序存储库,具体而言:
若要从适用于 Databricks Runtime 12.2 LTS 及更低版本的 Databricks Connect 迁移到适用于 Databricks Runtime 13.3 LTS 及更高版本的 Databricks Connect,请参阅迁移到适用于 Scala 的 Databricks Connect。