将 IntelliJ IDEA 与适用于 Scala 的 Databricks Connect 配合使用

注意

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

本文介绍如何将适用于 Scala 的 Databricks Connect 与装有 Scala 插件IntelliJ IDEA 配合使用。 Databricks Connect 可让你将常用 IDE、笔记本服务器和其他自定义应用程序连接到 Azure Databricks 群集。 请参阅什么是 Databricks Partner Connect?

注意

在开始使用 Databricks Connect 之前,必须先设置 Databricks Connect 客户端

若要将 Databricks Connect 与装有 Scala 插件的 IntelliJ IDEA 配合使用来创建、运行和调试示例 Scala sbt 项目,请按照以下说明操作。 这些说明已使用 IntelliJ IDEA Community Edition 2023.3.6 进行测试。 如果使用不同版本的 IntelliJ IDEA,则以下说明可能有所不同。

  1. 确保已在本地安装 Java 开发工具包 (JDK)。 Databricks 建议本地 JDK 版本与 Azure Databricks 群集上的 JDK 版本匹配。

  2. 启动 IntelliJ IDEA。

  3. 单击“文件>”“新建”“>项目”。

  4. 为项目指定有意义的名称

  5. 对于“位置”,单击文件夹图标,然后完成屏幕说明以指定新 Scala 项目的路径。

  6. 对于“语言”,请单击“Scala”。

  7. 对于“生成系统”,请单击“sbt”。

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

    注意

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

  9. 在“sbt”下拉列表中,选择最新版本。

  10. 在“Scala”下拉列表中,选择与群集上 Scala 版本匹配的 Scala 版本。

    注意

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

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

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

  13. 单击 “创建”

  14. 添加 Databricks Connect 包:打开新的 Scala 项目,在“项目”工具窗口中(“视图”>“工具 Windows”>“项目”),打开 project-name> target 中名为 build.sbt 的文件。

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

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

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

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

  17. 等待至 IDE 底部的 sbt 进度指示器消失。 sbt 加载过程可能需要几分钟时间。

  18. 添加代码:在“项目”工具窗口中,打开 project-name> src > main > scala 中名为 Main.scala 的文件。

  19. 将文件中的任何现有代码替换为以下代码,然后保存该文件:

    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()
      }
    }
    
  20. 运行代码:在远程 Azure Databricks 工作区中启动目标群集。

  21. 群集启动后,在主菜单上,单击“运行”>“运行‘Main’”

  22. 在“运行”工具窗口(”查看”>“工具窗口”>“运行”)的“主”选项卡中,将显示 samples.nyctaxi.trips 表的前 5 行。 所有 Scala 代码都在本地运行,而涉及 DataFrame 操作的 Scala 代码在远程 Azure Databricks 工作区中的群集上运行,运行响应发送回给本地调用方。

  23. 调试代码:在远程 Azure Databricks 工作区中启动目标群集(如果尚未运行)。

  24. 在前面的代码中,单击 df.limit(5).show() 旁边的装订线以设置断点。

  25. 群集启动后,在主菜单上,单击“运行”>“调试 ‘Main’”

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

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

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

  29. 在“控制台”窗格中,将显示 samples.nyctaxi.trips 的前 5 行。 所有 Scala 代码都在本地运行,而涉及 DataFrame 操作的 Scala 代码在远程 Azure Databricks 工作区中的群集上运行,运行响应发送回给本地调用方。