다음을 통해 공유


자습서: 서버리스 컴퓨팅에서 Scala 코드 실행

중요합니다

서버리스 컴퓨팅의 Scala용 Databricks Connect는 베타 버전입니다.

이 자습서에서는 서버리스 컴퓨팅을 사용하여 Scala용 Databricks Connect를 시작하는 방법에 대한 개요를 제공합니다. Unity 카탈로그 사용 컴퓨팅(표준 액세스 모드의 클래식 컴퓨팅 또는 서버리스 컴퓨팅) 호환되는 Scala JAR 파일을 빌드하는 단계를 안내합니다.

팁 (조언)

서버리스 컴퓨팅에서 JAR을 배포하고 실행하도록 완전히 구성된 Scala 프로젝트를 만들려면 Databricks 자산 번들을 사용할 수 있습니다. Databricks 자산 번들을 사용하여 Scala JAR 빌드를 참조하세요.

요구 사항

로컬 개발 환경은 Scala용 Databricks Connect에 대한 요구 사항을 충족해야 합니다. 다음 을 포함하는 Databricks Connect 사용 요구 사항을 참조하세요.

  • JDK(Java Development Kit)

  • sbt

  • 서버리스 컴퓨팅용으로 구성된 Databricks CLI:

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

1단계: Scala 프로젝트 만들기

먼저 Scala 프로젝트를 만듭니다. 메시지가 표시되면 프로젝트 이름(예 my-spark-app: .)을 입력합니다.

sbt new scala/scala-seed.g8

2단계: Scala 및 JDK 버전 업데이트

JAR을 빌드하기 전에 코드를 컴파일하는 데 사용하는 JDK(Java Development Kit) 및 Scala 버전이 서버리스 컴퓨팅에 지원되는지 확인합니다. 이 요구 사항에 대한 자세한 내용은 JDK 및 Scala 버전 설정을 참조하세요.

호환되는 버전은 버전 지원 매트릭스를 참조하세요.

다음 구성은 Databricks 런타임 버전 17 및 서버리스 환경 버전 4와 전용 또는 표준 액세스 컴퓨팅과 호환되는 Scala 2.13 및 JDK 17용입니다.

scalaVersion := "2.13.16"

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

3단계: Databricks Connect를 종속성으로 추가

Databricks Connect를 종속성으로 추가하여 Scala JAR을 빌드합니다. 자세한 내용은 Spark 종속성을 참조하세요.

Scala 프로젝트의 build.sbt 빌드 파일에서 Databricks Connect에 다음 참조를 추가합니다.

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

// 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는 애플리케이션 및 모든 종속 라이브러리를 über 또는 fat JAR이라고도 하는 단일 JAR 파일로 패키징하는 것이 좋습니다. 또는 종속 라이브러리를 컴퓨팅 범위 라이브러리로 설치하거나 서버리스 환경에 설치할 수 있습니다. 자세한 내용은 애플리케이션 종속성을 참조하세요.

중요합니다

Spark에 대한 종속성을 제거합니다. Spark API는 Databricks Connect에서 제공합니다. 자세한 내용은 Spark 종속성을 참조하세요.

5단계: Spark 코드 추가

에서 기본 클래스를 만듭니다 src/main/scala/example/DatabricksExample.scala. Scala 코드에서 Spark 세션을 사용하는 방법에 대한 자세한 내용은 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 배포

이제 UI에서 JAR 작업을 사용하거나 Databricks 자산 번들을 사용하여 JAR 파일을 배포합니다.

비고

만든 JAR은 표준 컴퓨팅에서도 지원됩니다. 그러나 표준 컴퓨팅의 경우 관리자는 JAR 라이브러리에 대한 Maven 좌표와 경로를 허용 목록에 추가해야 합니다. 표준 액세스 모드(이전의 공유 액세스 모드)의 컴퓨팅에서 허용 리스트 라이브러리 및 초기화 스크립트를 참조하세요.

Databricks는 개별 JAR 대신 전체 볼륨을 허용 목록에 추가하는 것이 좋습니다.