教程:在经典计算上运行 IntelliJ IDEA 中的代码

本文演示如何使用 IntelliJ IDEAScala 插件快速开始使用 Databricks Connect for Scala。

在本教程中,你将在 IntelliJ IDEA 中创建项目,安装 Databricks Connect for Databricks Runtime 13.3 LTS 及更高版本,并在 IntelliJ IDEA 的 Databricks 工作区中的计算上运行简单代码。

要求

若要完成此教程,必须满足以下要求:

  • 目标 Azure Databricks 工作区和群集必须满足 Databricks Connect 的计算要求

  • 必须提供群集 ID。 若要获取群集 ID,请在工作区中单击边栏上的 “计算 ”,然后单击群集的名称。 在 Web 浏览器的地址栏中,复制 URL 之间 clustersconfiguration URL 中的字符字符串。

  • 本地环境和计算满足 Databricks Connect for Scala 安装版本要求

  • 已在开发计算机上安装 Java 开发工具包(JDK)。 Databricks 建议 JDK 安装的版本与 Azure Databricks 群集上的 JDK 版本匹配。 若要在群集上查找 Databricks Runtime 的 JDK 版本,请参阅 Databricks Runtime 发行说明版本支持矩阵“系统环境”部分。

    注释

    如果未安装 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 OAuth 用户到计算机(U2M)身份验证 和 Azure Databricks 配置文件 对 Azure Databricks 工作区进行身份验证。 若要改用其他身份验证类型,请参阅 “配置连接属性”。

配置 OAuth U2M 身份验证需要 Databricks CLI,如下所示:

  1. 如果尚未安装,请安装 Databricks CLI ,如下所示:

    Linux、macOS

    通过运行以下命令,使用 Homebrew 安装 Databricks CLI:

    brew tap databricks/tap
    brew install databricks
    

    Windows操作系统

    可以使用 winget、Chocolatey 或 适用于 Linux 的 Windows 子系统(WSL) 安装 Databricks CLI。 如果无法使用 wingetChocolatey 或 WSL,则应跳过此过程,并使用命令提示符或 PowerShell 从源安装 Databricks CLI

注释

使用 Chocolatey 安装 Databricks CLI 是 实验性的

若要用于 winget 安装 Databricks CLI,请运行以下两个命令,然后重启命令提示符:

winget search databricks
winget install Databricks.DatabricksCLI

若要使用 Chocolatey 安装 Databricks CLI,请运行以下命令:

choco install databricks-cli

若要使用 WSL 安装 Databricks CLI,

  1. zip安装和curl通过 WSL。 有关详细信息,请参阅作系统的文档。

  2. 运行以下命令,使用 WSL 安装 Databricks CLI:

    curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
    
  3. 通过运行以下命令确认已安装 Databricks CLI 已安装,该命令显示已安装的 Databricks CLI 的当前版本。 此版本应为 0.205.0 或更高版本:

    databricks -v
    

    注释

    如果运行 databricks 但出现错误(例如 command not found: databricks,或者运行 databricks -v 且版本号为 0.18 或更低版本),这意味着计算机找不到 Databricks CLI 可执行文件的正确版本。 若要解决此问题,请参阅 “验证 CLI 安装”。

启动 OAuth U2M 身份验证,如下所示:

  1. 通过为每个目标工作区运行以下命令,使用 Databricks CLI 在本地启动 OAuth 令牌管理。

    在以下命令中,将 <workspace-url> 替换为 Azure Databricks 的 按工作区的 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn

    databricks auth login --configure-cluster --host <workspace-url>
    
  2. Databricks CLI 会提示您将输入的信息另存为 Azure Databricks 配置文件。 按下 Enter 接受建议的配置文件名称,或输入新配置文件或现有配置文件的名称。 使用输入的信息覆盖同名的任何现有配置文件。 可以使用配置文件跨多个工作区快速切换身份验证上下文。

    若要获取任何现有配置文件的列表,请在单独的终端或命令提示符中使用 Databricks CLI 来运行 databricks auth profiles 命令。 要查看特定配置文件的现有设置,请运行命令 databricks auth env --profile <profile-name>

  3. 在 Web 浏览器中,按照屏幕上的说明登录到 Azure Databricks 工作区。

  4. 在终端或命令提示符中显示的可用群集列表中,使用向上键和向下键选择工作区中的目标 Azure Databricks 群集,然后按 Enter。 还可以键入群集显示名称的任何部分来筛选可用群集的列表。

  5. 要查看配置文件的当前 OAuth 令牌值和令牌即将过期的时间戳,请运行以下命令之一:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    如果你有多个配置文件有相同的 --host 值,则可能需要同时指定 --host-p 选项,以便 Databricks CLI 找到正确的匹配 OAuth 令牌信息。

步骤 2:创建项目

  1. 启动 IntelliJ IDEA。

  2. 在主菜单上,单击“ 文件 > 新建 > 项目”。

  3. 为项目提供一些有意义的 名称

  4. 对于 “位置”,请单击文件夹图标,并完成屏幕指示以指定新 Scala 项目的路径。

  5. 对于 语言,请单击 Scala

  6. 对于 生成系统,请单击 sbt

  7. JDK 下拉列表中,选择与群集上的 JDK 版本匹配的开发计算机上 JDK 的现有安装,或选择“ 下载 JDK ”,然后按照屏幕上的说明下载与群集上的 JDK 版本匹配的 JDK。 请参阅 要求

    注释

    在群集上选择高于或低于 JDK 版本的 JDK 安装可能会产生意外结果,或者代码根本无法运行。

  8. sbt 下拉列表中,选择最新版本。

  9. Scala 下拉列表中,选择与群集上的 Scala 版本匹配的 Scala 版本。 请参阅 要求

    注释

    选择群集上 Scala 版本低于或高于 Scala 版本的 Scala 版本可能会产生意外结果,或者代码根本无法运行。

  10. 确保选中 Scala 旁边的“下载源”框。

  11. 对于 包前缀,输入项目的源的一些包前缀值,例如 org.example.application

  12. 确保选中 “添加示例代码 ”框。

  13. 单击 “创建”

创建 IntelliJ IDEA 项目

步骤 3:添加 Databricks Connect 包

  1. 打开新的 Scala 项目后,在项目工具窗口中(查看>工具 Windows > 项目),在项目名称>目标中打开名为build.sbt的文件。

  2. 将以下代码添加到文件的末尾 build.sbt ,该文件声明项目依赖于适用于 Scala 的特定版本的 Databricks Connect 库,与群集的 Databricks Runtime 版本兼容:

    libraryDependencies += "com.databricks" % "databricks-connect" % "16.4.2"
    

    替换为 16.4.2 与群集上的 Databricks Runtime 版本匹配的 Databricks Connect 库的版本。 例如,Databricks Connect 16.4.2 与 Databricks Runtime 16.4 LTS 匹配。 可以在 Maven 中央存储库中找到 Databricks Connect 库版本号。

  3. 单击 “加载 sbt 更改 通知”图标,使用新的库位置和依赖项更新 Scala 项目。

  4. sbt等待 IDE 底部的进度指示器消失。 sbt加载过程可能需要几分钟才能完成。

安装 Databricks Connect 包

步骤 4:添加代码

  1. “项目”工具窗口中,打开名为 Main.scalaproject-name> src > main > scala 的文件。

  2. 将文件中的任何现有代码替换为以下代码,然后保存该文件,具体取决于配置文件的名称。

    如果步骤 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:运行代码

  1. 在远程 Azure Databricks 工作区中启动目标群集。

  2. 群集启动后,在主菜单上,单击 “运行运行 > ”Main”。

  3. “运行 工具”窗口(查看 > 工具窗口 > 运行)的 “主 ”选项卡上,将显示表的前 5 行 samples.nyctaxi.trips

步骤 6:调试代码

  1. 在目标群集仍在运行的情况下,在前面的代码中,单击断点旁边的 df.limit(5).show() 装订线以设置断点。

  2. 在主菜单上,单击“ 运行 > 调试”Main”。

  3. “调试 工具”窗口中(查看 > 工具 Windows > 调试),在 “控制台 ”选项卡上,单击计算器(计算表达式)图标。

  4. 输入表达式 df.schema ,然后单击“ 计算 ”以显示 DataFrame 的架构。

  5. “调试 ”工具窗口的边栏中,单击绿色箭头(恢复程序)图标。

  6. “控制台 ”窗格中,将显示表的前 5 行 samples.nyctaxi.trips

调试 IntelliJ IDEA 项目