共用方式為

使用 Databricks 资产捆绑构建 Scala JAR

本文介绍如何使用 Databricks 资产捆绑生成、部署和运行 Scala JAR。 有关捆绑包的信息,请参阅 什么是 Databricks 资产捆绑包?

有关生成 Java JAR 并将其上传到 Unity 目录的示例配置,请参阅 将 JAR 文件上传到 Unity 目录的捆绑包

要求

  • Databricks CLI 版本 0.218.0 或更高版本,并配置了身份验证。 若要检查安装的 Databricks CLI 版本,请运行命令 databricks -v。 要安装 Databricks CLI,请参阅《安装或更新 Databricks CLI》。 若要配置身份验证,请参阅 “配置对工作区的访问权限”。
  • 在 Databricks 中,您必须拥有一个 Unity Catalog 卷,用于存储构建工件,并且需要有将 JAR 上传到指定卷路径的权限。 请参阅创建和管理卷

步骤 1:创建捆绑包

首先,使用 bundle init 命令 和 Scala 项目捆绑模板创建捆绑包。 Scala JAR 捆绑包模板创建了一个捆绑包,该捆绑包可生成 JAR,将其上传到指定的卷,并使用在指定群集上运行的 JAR 定义具有 Spark 任务的作业。 模板项目中的 Scala 定义了一个 UDF,该 UDF 将简单的转换应用于示例数据帧并输出结果。 模板的源位于 捆绑示例存储库中。

  1. 在本地开发计算机上的终端窗口中运行以下命令。 它会提示输入某些必填字段的值。

    databricks bundle init --template-dir contrib/templates/scala-job https://github.com/databricks/bundle-examples
    
  2. 对于项目的名称,请输入 my_scala_project。 这将确定此捆绑包的根目录的名称。 此根目录是在当前工作目录中创建的。

  3. 对于卷目标路径,请提供 Databricks 中要创建捆绑包目录的 Unity Catalog 卷路径,该目录包含 JAR 和其他工件,例如 /Volumes/my-catalog/my-schema/bundle-volumes

    注释

    根据工作区权限,管理员可能需要将指定的卷 JAR 路径列入允许列表。 请参阅在采用标准访问模式(以前称为“共享访问模式”)的计算上将库和初始化脚本加入允许列表

步骤 2:探索组件包

若要查看模板生成的文件,请切换到新创建的捆绑包的根目录,并使用首选 IDE 打开此目录。 特别感兴趣的文件包括:

  • databricks.yml:此文件指定程序包的编程名称,包括对作业定义的引用,并指定有关目标工作区的设置。
  • resources/my_scala_project.job.yml:此文件指定作业的 JAR 任务和群集设置。
  • src/:此目录包括 Scala 项目的源文件。
  • build.sbt:此文件包含重要的生成和依赖库设置。
  • README.md:此文件包含以下入门步骤,以及本地生成说明和设置。

步骤 3:验证项目的捆绑配置文件

接下来,使用 捆绑包验证命令检查捆绑包配置是否有效。

  1. 从根目录运行 Databricks CLI bundle validate 命令。 在其他检查中,这将验证工作区中是否存在配置文件中指定的卷。

    databricks bundle validate
    
  2. 如果返回了捆绑包配置的摘要,则表示验证成功。 如果返回任何错误,请修复错误,然后重复此步骤。

如果在此步骤后对捆绑包进行任何更改,请重复此步骤以检查捆绑配置是否仍然有效。

步骤 4:将本地项目部署到远程工作区

现在,使用 捆绑部署命令将捆绑包部署到远程 Azure Databricks 工作区。 此步骤将生成 JAR 文件并将其上传到指定的卷。

  1. 运行 Databricks CLI bundle deploy 命令:

    databricks bundle deploy -t dev
    
  2. 检查本地生成的 JAR 文件是否已部署:

    1. 在 Azure Databricks 工作区的边栏中,单击 “目录资源管理器”。
    2. 导航到初始化捆绑包时指定的卷目标路径。 JAR 文件应位于该路径内的以下文件夹中: /my_scala_project/dev/<user-name>/.internal/
  3. 检查作业是否已创建:

    1. 在 Azure Databricks 工作区的边栏中,单击作业和管道
    2. (可选)选择作业归我所有筛选器。
    3. 单击 [dev <your-username>] my_scala_project
    4. 单击“任务”选项卡。

    应该有一个任务:main_task

如果在此步骤后对捆绑包进行任何更改,请重复验证和部署步骤。

步骤 5:运行已部署的项目

最后,使用 捆绑包运行命令运行 Azure Databricks 作业。

  1. 在根目录中,运行 Databricks CLI bundle run 命令,并在定义文件中 my_scala_project.job.yml指定作业的名称:

    databricks bundle run -t dev my_scala_project
    
  2. 复制终端中显示的 Run URL 值,并将该值粘贴到 Web 浏览器中以打开 Azure Databricks 工作区。

  3. 在 Azure Databricks 工作区中,任务成功完成并显示绿色标题栏后,请单击 main_task 任务以查看结果。