Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Бессерверные задания на Scala и Java находятся на стадии бета. JAR-задачи можно использовать для распространения вашего JAR. Если она еще не включена, см. статью "Управление предварительными версиями Azure Databricks ".
Архив Java (JAR) упаковывает код Java или Scala в один файл. В этой статье показано, как создать JAR-файл с кодом Spark и развернуть его как задание Lakeflow на бессерверных вычислениях.
Подсказка
Для автоматизированного развертывания и непрерывной интеграции используйте пакеты ресурсов Databricks для создания проекта из шаблона с предварительно настроенными параметрами сборки и развертывания. См. Создание JAR-файла Scala с использованием пакетов ресурсов Databricks и пакет, загружающий JAR-файл в каталог Unity. В этой статье описывается ручной подход к развертыванию или обучение работе JAR с бессерверными вычислениями.
Требования
В локальной среде разработки должно быть следующее:
- sbt 1.11.7 или более поздней версии (для Scala JARs)
- Maven 3.9.0 или более поздней версии (для JAVA JARs)
- Версии JDK, Scala и Databricks Connect, соответствующие бессерверной среде (в этом примере используется JDK 17, Scala 2.13.16 и Databricks Connect 17.0.1)
Шаг 1. Создание JAR-файла
Scala
Выполните следующую команду, чтобы создать проект Scala:
sbt new scala/scala-seed.g8При появлении запроса введите имя проекта, например
my-spark-app.Замените содержимое файла
build.sbtследующим образом:scalaVersion := "2.13.16" libraryDependencies += "com.databricks" %% "databricks-connect" % "17.0.1" // other dependencies go here... // to run with new jvm options, a fork is required otherwise it uses same options as sbt process fork := true javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"Измените или создайте файл
project/assembly.sbtи добавьте эту строку:addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.1")Создайте ваш основной класс в
src/main/scala/example/DatabricksExample.scala:package com.examples import org.apache.spark.sql.SparkSession object SparkJar { def main(args: Array[String]): Unit = { val spark = SparkSession.builder().getOrCreate() // Prints the arguments to the class, which // are job parameters when run as a job: println(args.mkString(", ")) // Shows using spark: println(spark.version) println(spark.range(10).limit(3).collect().mkString(" ")) } }Чтобы создать JAR-файл, выполните следующую команду:
sbt assembly
Ява
Выполните следующие команды, чтобы создать новую структуру проекта Maven:
# Create all directories at once mkdir -p my-spark-app/src/main/java/com/examples cd my-spark-apppom.xmlСоздайте файл в корневом каталоге проекта со следующим содержимым:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.examples</groupId> <artifactId>my-spark-app</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <scala.binary.version>2.13</scala.binary.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com.databricks</groupId> <artifactId>databricks-connect_${scala.binary.version}</artifactId> <version>17.0.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.6.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.examples.SparkJar</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>Создайте ваш основной класс в
src/main/java/com/examples/SparkJar.java:package com.examples; import org.apache.spark.sql.SparkSession; import java.util.stream.Collectors; public class SparkJar { public static void main(String[] args) { SparkSession spark = SparkSession.builder().getOrCreate(); // Prints the arguments to the class, which // are job parameters when run as a job: System.out.println(String.join(", ", args)); // Shows using spark: System.out.println(spark.version()); System.out.println( spark.range(10).limit(3).collectAsList().stream() .map(Object::toString) .collect(Collectors.joining(" ")) ); } }Чтобы создать JAR-файл, выполните следующую команду:
mvn clean packageСкомпилированный JAR находится в каталоге
target/какmy-spark-app-1.0-SNAPSHOT.jar.
шаг 2. Создание задания для запуска JAR-файла
В рабочей области щелкните на
Задания и конвейеры на боковой панели.
Нажмите кнопку "Создать", а затем "Задание".
Щелкните плитку JAR , чтобы настроить первую задачу. Если плитка JAR недоступна, нажмите кнопку "Добавить другой тип задачи " и найдите JAR-файл.
При необходимости замените имя задания, в котором по умолчанию используется
New Job <date-time>имя задания.В поле "Имя задачи" введите имя задачи, например
JAR_example.При необходимости выберите JAR в раскрывающемся меню "Тип ".
Введите пакет и класс вашего Jar в главный класс. Если вы выполнили приведенный выше пример, введите
com.examples.SparkJar.Для вычислений выберите бессерверные.
Настройте бессерверную среду:
- Выберите среду, а затем щелкните
Измените его, чтобы настроить его.
- Выберите 4-scala-preview для версии окружения.
- Добавьте JAR-файл, перетащив его в селектор файлов или выбрав его из тома каталога Unity или расположения рабочей области.
- Выберите среду, а затем щелкните
Для параметров введите
["Hello", "World!"].Нажмите Создать задачу.
Шаг 3. Запуск задания и просмотр сведений о выполнении задания
Щелкните
, чтобы запустить рабочий процесс. Чтобы просмотреть сведения о выполнении, щелкните Просмотреть выполнение в всплывающем окне Запущенного выполнения или щелкните ссылку в столбце Время начала для запуска в представлении выполнения заданий.
По завершении выполнения выходные данные отображаются на панели вывода , включая аргументы, переданные задаче.
Дальнейшие действия
- Дополнительные сведения о задачах JAR см. в разделе JAR-задачи для заданий.
- Дополнительные сведения о создании совместимого JAR-файла см. в статье "Создание совместимого JAR-файла Azure Databricks".
- Дополнительные сведения о создании и выполнении заданий см. в разделе "Задания Lakeflow".