将 Visual Studio Code 与用于 Scala 的 Databricks Connect 配合使用

备注

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

本文介绍如何将 Databricks Connect for Scala 与 Visual Studio Code 配合使用。 借助 Databricks Connect,可以将常用 IDE、笔记本服务器和其他自定义应用程序连接到 Azure Databricks 群集。 请参阅什么是 Databricks Connect?。 有关本文的 Python 版本,请参阅 将 Visual Studio Code 与用于 Python 的 Databricks Connect 配合使用

备注

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

若要将 Databricks Connect 和 Visual Studio Code 与 Scala(金属) 扩展配合使用来创建、运行和调试示例 Scala sbt 项目,请按照以下说明作。 还可以将此示例适应现有的 Scala 项目。

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

  2. 请确保本地安装了最新版本 sbt

  3. 安装 Visual Studio Code 的 Scala(金属) 扩展。

  4. 在 Visual Studio Code 中,打开要在其中创建 Scala 项目的文件夹(文件 > 打开文件夹)。

  5. 在边栏上,单击 Metals 扩展图标,然后单击“新建 Scala 项目”。

  6. 在命令面板中,选择名为 scala/hello-world.g8 的模板,并完成屏幕上的说明,以完成在指定文件夹中创建 Scala 项目。

  7. 添加项目生成设置:在 资源管理器 视图中(视图 > 资源管理器),从项目的根目录中打开 build.sbt 文件,将文件的内容替换为以下内容,并保存该文件:

    scalaVersion := "2.12.15"
    
    libraryDependencies += "com.databricks" % "databricks-connect" % "14.3.1"
    

    用您已安装的 Scala 版本替换2.12.15,该版本应与您群集上的 Databricks Runtime 版本中所包含的版本相匹配。

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

  8. 添加 Scala 代码:打开 src/main/scala/Main.scala 相对于项目的根目录的文件,将文件的内容替换为以下内容,并保存该文件:

    import com.databricks.connect.DatabricksSession
    import org.apache.spark.sql.SparkSession
    
    object Main extends App {
      val spark = DatabricksSession.builder().remote().getOrCreate()
      val df = spark.read.table("samples.nyctaxi.trips")
      df.limit(5).show()
    }
    
  9. 生成项目:从命令面板运行命令 >Metals: Import build

  10. 添加项目运行设置:在 “运行和调试 ”视图中(查看 > 运行),单击标记为 创建 launch.json 文件的链接。

  11. 命令面板中,选择 Scala 调试器

  12. 将以下运行配置添加到 launch.json 该文件,然后保存该文件:

    {
      // Use IntelliSense to learn about possible attributes.
      // Hover to view descriptions of existing attributes.
      // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
      "version": "0.2.0",
      "configurations": [
        {
          "type": "scala",
          "request": "launch",
          "name": "Scala: Run main class",
          "mainClass": "Main",
          "args": [],
          "jvmOptions": []
        }
      ]
    }
    
  13. 运行项目:单击 Scala:运行主类旁边的播放(开始调试)图标。 在 “调试控制台 ”视图(查看 > 调试控制台)中,将显示表的前 5 行 samples.nyctaxi.trips 。 所有 Scala 代码在本地运行,而涉及 DataFrame作的所有 Scala 代码在远程 Azure Databricks 工作区中的群集上运行,运行响应将发送回本地调用方。

  14. 调试项目:在代码中设置断点,然后再次单击播放图标。 所有 Scala 代码在本地调试,而所有 Scala 代码将继续在远程 Azure Databricks 工作区中的群集上运行。 无法直接从客户端对核心 Spark 引擎代码进行调试。