Руководство по запуску кода Scala на бессерверных вычислениях

Это важно

Бессерверные задания Scala и Java находятся в общедоступной предварительной версии. JAR-задачи можно использовать для распространения вашего JAR. Если она еще не включена, см. статью "Управление предварительными версиями Azure Databricks ".

В этом руководстве представлен обзор начала работы с Databricks Connect для Scala с помощью бессерверных вычислений. В нем рассматривается процесс создания JAR-файла Scala, совместимого с вычислительными ресурсами, использующими каталог Unity, будь то классические вычислительные ресурсы в стандартном режиме доступа или бессерверные ресурсы.

Подсказка

Чтобы создать проект Scala, который полностью настроен для развертывания и запуска JAR-файла на бессерверных вычислениях, можно использовать декларативные пакеты автоматизации. См. статью о сборке JAR-файла Scala с помощью декларативных пакетов автоматизации.

Требования

Локальная среда разработки должна соответствовать требованиям Databricks Connect для Scala. Дополнительные сведения см. в разделе "Требования к использованию Databricks Connect", в том числе следующие:

  • Пакет средств разработки Java (JDK)

  • sbt

  • Интерфейс командной строки Databricks, настроенный для бессерверных вычислений:

    databricks auth login --configure-serverless --host <workspace-url>
    

Шаг 1. Создание проекта Scala

Сначала создайте проект Scala. При появлении запроса введите имя проекта, например my-spark-app.

sbt new scala/scala-seed.g8

Шаг 2. Обновление версий Scala и JDK

Перед созданием JAR убедитесь, что для бессерверных вычислений поддерживается версия пакета средств разработки Java (JDK) и Scala, которые вы используете для компиляции кода. Дополнительные сведения об этом требовании см. в разделе Set JDK и Scala versions.

Сведения о совместимых версиях см. в таблице поддержки версий.

Следующая конфигурация предназначена для Scala 2.13 и JDK 17, совместимых с выделенными или стандартными вычислениями доступа с Databricks Runtime версии 17 и бессерверной средой версии 4.

scalaVersion := "2.13.16"

javacOptions ++= Seq("-source", "17", "-target", "17")
scalacOptions ++= Seq("-release", "17")

Шаг 3. Добавление Databricks Connect в качестве зависимости

Добавьте Databricks Connect в качестве зависимости для создания JAR Scala. Для получения дополнительной информации см. раздел Зависимости Spark.

В файле сборки проекта build.sbt Scala добавьте следующую ссылку на Databricks Connect.

scalaVersion := "2.13.16"
libraryDependencies += "com.databricks" %% "databricks-connect" % "17.3.+"

// To run with new JVM options, a fork is required, otherwise it uses the same options as the sbt process.
fork := true
javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"

Шаг 4. Добавление других зависимостей

Databricks рекомендует упаковывать приложение и все зависимые библиотеки в один JAR-файл, также известный как über или fat JAR. Кроме того, можно установить зависимые библиотеки как библиотеки с областью вычислений или в бессерверной среде. Дополнительные сведения см. в разделе "Зависимости приложений".

Это важно

Удалите любую зависимость от Spark. API Spark предоставляются Databricks Connect. Для получения дополнительной информации см. раздел Зависимости Spark.

Шаг 5. Добавление кода Spark

Создайте основной класс в src/main/scala/example/DatabricksExample.scala. Дополнительные сведения об использовании сеанса Spark в коде Scala см. в разделе "Использование сеанса Databricks Spark".

package com.examples

import com.databricks.connect.DatabricksSession
import org.apache.spark.sql.{SparkSession}

object SparkJar {
  def main(args: Array[String]): Unit = {
    val spark: SparkSession = DatabricksSession.builder()
      .validateSession(false)
      .addCompiledArtifacts(SparkJar.getClass.getProtectionDomain.getCodeSource.getLocation.toURI)
      .getOrCreate()

    println(spark.version)
    println(spark.range(10).limit(3).collect().mkString(" "))
  }
}

Шаг 6. Запуск и сборка кода

Затем запустите код:

sbt run

Теперь создайте файл со следующей строкой project/assembly.sbt , а затем создайте проект:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.1")
sbt assembly

Шаг 7. Развертывание JAR-файла

Теперь разверните JAR-файл с помощью задачи JAR из пользовательского интерфейса или с помощью декларативных пакетов автоматизации:

Примечание.

Созданный JAR-файл также поддерживается в стандартных вычислительных ресурсах. Однако для стандартных вычислений администратор должен добавить координаты и пути Maven для библиотек JAR в список разрешений. См. библиотеки допустимых списков и скрипты инициализации для вычислений в стандартном режиме доступа (ранее называвшегося режимом общего доступа).

Databricks рекомендует добавлять целый том вместо отдельных JAR в список разрешений.