Pular para o conteúdo principal

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

info

Beta

Databricks Connect para Scala em compute serverless está em versão Beta.

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 Databricks Ativo Bundles. Consulte Construir um JAR Scala usando pacotes ativos Databricks.

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 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, sendo compatível com compute de acesso dedicado ou padrão com Databricks Runtime versão 17 e ambiente serverless 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 mais informações, veja Dependências.

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.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"

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 escopo decompute ou em seu ambiente serverless . Para mais informações, veja pacote como um único JAR.

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 Usando a sessão Spark em seu código.

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 UI ou usando Databricks ativo Bundles:

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.