Pular para o conteúdo principal

tutorial: execução de código Scala em compute serverless

Este tutorial fornece uma visão geral de como começar a usar Databricks Connect para Scala com compute serverless . Este tutorial demonstra como criar um arquivo JAR Scala compatível com o Unity Catalog ( compute compute no modo de acesso padrão ou compute serverless ).

dica

Para criar um projeto Scala totalmente configurado para implantar e executar um JAR em compute serverless , você pode usar os Declarative Automation Bundles. Consulte Criar um JAR Scala usando Pacotes de Automação Declarativa.

Requisitos​

Seu ambiente de desenvolvimento local deve atender aos requisitos do Databricks Connect para Scala. Consulte os requisitos de utilização do Databricks Connect, que incluem o seguinte:

  • Kit de Desenvolvimento Java (JDK)

  • SBT

  • CLI Databricks , configurada para compute serverless :

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

o passo 1: Crie um projeto Scala​

Primeiro, crie um projeto Scala. Quando solicitado, insira um nome de projeto, por exemplo, my-spark-app.

Bash
sbt new scala/scala-seed.g8

Passo 2: Atualize as versões Scala e do JDK​

Antes de criar seu JAR, certifique-se de que a versão do Java Development Kit (JDK) e Scala que você usa para compilar seu código seja compatível com compute serverless . Para obter detalhes sobre esse requisito, consulte Definir versões do JDK e do Scala.

Para versões compatíveis, consulte a matriz de suporte de versões.

A configuração a seguir é para Scala 2.13 e JDK 17, que é compatível com compute de acesso dedicado ou padrão com Databricks Runtime versão 17 e ambienteserverless versão 4.

scalaVersion := "2.13.16"

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

Passo 3: Adicione Databricks Connect como uma dependência​

Adicione o Databricks Connect como uma dependência para criar arquivos JAR em Scala. Para obter mais informações, consulte DependênciasSpark.

No arquivo de compilação build.sbt do seu projeto Scala, adicione a seguinte referência ao 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"

o passo 4: Adicionar outras dependências​

Databricks recomenda empacotar seu aplicativo e todas as bibliotecas dependentes em um único arquivo JAR , também conhecido como über ou fat JAR . Alternativamente, você pode instalar a biblioteca dependente como uma biblioteca com escopocompute ou em seu ambiente serverless . Para mais informações, consulte Dependências da aplicação.

importante

Remova qualquer dependência do Spark. As APIs do Spark são fornecidas pelo Databricks Connect. Para obter mais informações, consulte DependênciasSpark.

o passo 5: Adicionar código Spark​

Crie sua classe principal em src/main/scala/example/DatabricksExample.scala. Para obter detalhes sobre como usar a sessão Spark em seu código Scala, consulte Usar a sessão Spark do Databricks.

Scala
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(" "))
}
}

o passo 6: execução e construção do seu código​

Em seguida, execute seu código:

Bash
sbt run

Agora crie um arquivo project/assembly.sbt com a seguinte linha e, em seguida, compile o projeto:

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

o passo 7: implante seu JAR​

Agora, implante seu arquivo JAR usando uma tarefa JAR da interface do usuário ou usando Pacotes de Automação Declarativa:

nota

O JAR que você criou também é compatível com compute padrão. No entanto, para compute padrão, um administrador deve adicionar as coordenadas e os caminhos Maven para a biblioteca JAR a uma lista de permissões. Consulte a biblioteca Allowlist e o script de inicialização no compute com acesso padrão (anteriormente modo de acesso compartilhado).

A Databricks recomenda adicionar um volume inteiro em vez de arquivos JAR individuais à lista de permissões.