SPYT в Scala

Требования

SPYT работает с Java 11 и Scala 2.12.

Зависимости

Все зависимости ставятся в SPYT автоматически, поэтому значение для scopeProvided. Они будут использоваться только для компиляции и не будут включены в .jar для запуска.

Все допустимые значения для spytVersion можно найти здесь под тегами spyt/* или spyt-spark/*.


val sparkVersion = "3.2.2"
val spytVersion = "1.76.1"

libraryDependencies ++= Seq(
    // зависимости от Spark
    "org.apache.spark" %% "spark-core" % sparkVersion % Provided,
    "org.apache.spark" %% "spark-sql" % sparkVersion % Provided,
    // библиотека SPYT
    "tech.ytsaurus" %% "spark-yt-data-source" % spytVersion % Provided
)

Сборка

Код с примерами собран командой sbt assembly и выложен в YTsaurus: //home/spark/examples/scala-examples-assembly-0.1.jar.

Запуск джобов

Перед запуском джобов из примера необходимо запустить кластер SPYT или узнать discovery-path уже запущенного кластера.

Запуск джобов производится с помощью утилиты spark-submit-yt.

spark-submit-yt \
  --proxy ${YT_PROXY} \
  --discovery-path ${SPYT_DISCOVERY_PATH} \
  --deploy-mode cluster \
  --class tech.ytsaurus.spyt.examples.GroupingExample \
  yt:///home/spark/examples/scala-examples-assembly-0.1.jar

Особенности запуска задач напрямую в YTsaurus (с версии 1.76.0)

В случае использования запуска задач с использованием планировщика YTsaurus, для создания SparkSession нужно воспользоваться стандартными рекомендациями Spark:

import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession

object MySparkApplication {

    def main(args: Array[String]): Unit = {
        val conf = new SparkConf()
        val spark = SparkSession.builder.config(conf).getOrCreate()

        try {
            // Application code
        } finally {
            spark.stop()
        }
    }
}

В этом случае запуск выполняется при помощи команды spark-submit:

$ spark-submit \
  --master ytsaurus://${YT_PROXY} \
  --deploy-mode cluster \
  --class tech.ytsaurus.spyt.examples.GroupingExample \
  yt:///home/spark/examples/scala-examples-assembly-0.1.jar

Предыдущая
Следующая