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

注意

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

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

注意

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

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

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

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

  3. 安装适用于 Visual Studio Code 的 Scala (Metals) 扩展。

  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.0.0"
    

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

    14.0.0 替换为与群集上的 Databricks Runtime 版本匹配的 Databricks Connect 库版本。 可以在 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: Run main class 旁边的播放(“开始调试”)图标。 在“调试控制台”视图(“视图”>“调试控制台”)中,将显示 samples.nyctaxi.trips 表的前 5 行。 所有 Scala 代码都在本地运行,而涉及 DataFrame 操作的 Scala 代码在远程 Azure Databricks 工作区中的群集上运行,运行响应发送回给本地调用方。

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