适用于 Scala 开发人员的 Azure Databricks

本文提供有关如何使用 Scala 语言在 Azure Databricks 中开发笔记本和作业的指南。 第一部分提供有关常用工作流和任务的教程的链接。 第二部分提供 API、库和重要工具的链接。

入门的基本工作流是:

除此之外,还可以扩展到更具体的主题:

教程

以下教程提供了示例代码和笔记本来帮助你了解常用工作流。 有关将笔记本示例导入工作区的说明,请参阅导入笔记本

参考

以下小节列出了可帮助你开始使用 Scala 在 Azure Databricks 中进行开发的重要功能和提示。

Scala API

这些链接提供对 Apache Spark Scala API 的介绍和参考。

使用笔记本和 Databricks Git 文件夹管理代码

Databricks 笔记本支持 Scala。 这些笔记本提供了类似于 Jupyter 的功能,但增加了诸如使用大数据的内置可视化,用于调试和性能监视的 Apache Spark 集成以及用于跟踪机器学习实验的 MLflow 集成等功能。 通过导入笔记本开始。 拥有对群集的访问权限后,可以将笔记本附加到群集并运行笔记本

提示

若要完全重置笔记本的状态,重启内核可能有作用。 对于 Jupyter 用户,Jupyter 中的“重启内核”选项对应于在 Databricks 中拆离并重新附加笔记本。 若要重启笔记本中的内核,,请单击笔记本工具栏中的计算选择器,然后将鼠标悬停在列表中已附加的群集或 SQL 仓库上,以显示侧菜单。 选择“拆离并重新附加”。 这会从群集中拆离笔记本并重新附加它,从而重启进程。

通过 Databricks Git 文件夹,用户可以将笔记本和其他文件与 Git 存储库同步。 Databricks Git 文件夹有助于代码版本控制与协作,并且可以简化将完整的代码存储库导入 Azure Databricks、查看过去的笔记本版本以及与 IDE 开发集成的操作。 通过克隆远程 Git 存储库开始。 然后,可以使用存储库克隆打开或创建笔记本,将笔记本附加到群集,并运行笔记本

群集和库

Azure Databricks 计算可为任何大小的群集提供计算管理:从单节点群集到大型群集。 可以根据需求自定义群集硬件和库。 数据科学家通常通过创建群集或使用现有的共享群集来开始工作。 拥有对群集的访问权限后,可以向群集附加笔记本或在群集上运行作业

Azure Databricks 群集使用 Databricks Runtime。Databricks Runtime 提供许多开箱即用的常用库,包括 Apache Spark、Delta Lake 等。 你还可以安装其他第三方或自定义库用于笔记本和作业。

可视化效果

Azure Databricks Scala 笔记本具有对多种类型的可视化效果的内置支持。 还可以使用旧版可视化效果:

互操作性

此部分介绍支持 Scala 与 SQL 之间互操作性的功能。

作业

可以在 Azure Databricks 中以计划的作业或触发的作业形式自动运行 Scala 工作负载。 作业可以运行笔记本和 JAR。

  • 有关通过 UI 创建作业的详细信息,请参阅创建作业
  • Databricks SDK 允许以编程方式创建、编辑和删除作业。
  • Databricks CLI 提供了一个方便的命令行接口用于自动处理作业。

IDE、开发人员工具和 SDK

除了在 Azure Databricks 笔记本中开发 Scala 代码之外,还可以使用 IntelliJ IDEA 等集成开发环境 (IDE) 在外部进行开发。 若要在外部开发环境与 Azure Databricks 之间同步工作,可以使用多个选项:

  • 代码:可以使用 Git 同步代码。 请参阅 Git 与 Databricks Git 文件夹的集成
  • 库和作业:可以在外部创建库并将其上传到 Azure Databricks。 这些库可以在 Azure Databricks 笔记本中导入,或者可用于创建作业。 请参阅创建并运行 Azure Databricks 作业
  • 远程计算机执行:可以从本地 IDE 运行代码,以便进行交互式开发和测试。 IDE 可以与 Azure Databricks 通信,在 Azure Databricks 群集上执行大型计算。 例如,可将 IntelliJ IDEA 与 Databricks Connect 配合使用。

Databricks 提供了一套 SDK,支持自动化和与外部工具的集成。 可以使用 Databricks SDK 来管理群集和库、代码和其他工作区对象、工作负载和作业等资源。 请参阅 Databricks SDK

有关 IDE、开发人员工具和 SDK 的详细信息,请参阅开发人员工具和指南

其他资源