Partilhar via


Tutorial: Executar código Scala em computação sem servidor

Importante

O Databricks Connect for Scala na computação sem servidor está em versão beta.

Este tutorial fornece uma visão geral de como começar a usar o Databricks Connect for Scala usando computação sem servidor. Ele percorre a criação de um arquivo Scala JAR compatível com o Unity Catalog (computação clássica no modo de acesso padrão ou computação sem servidor).

Sugestão

Para criar um projeto Scala totalmente configurado para implantar e executar um JAR em computação sem servidor, você pode usar o Databricks Asset Bundles. Consulte Criar um JAR Scala usando pacotes de ativos Databricks.

Requerimentos

Seu ambiente de desenvolvimento local deve atender aos requisitos do Databricks Connect for Scala. Consulte Requisitos de uso do Databricks Connect, que inclui o seguinte:

  • Kit de desenvolvimento Java (JDK)

  • SBT

  • CLI do Databricks, configurada para computação sem servidor:

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

Etapa 1: Criar um projeto Scala

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

sbt new scala/scala-seed.g8

Etapa 2: Atualizar as versões Scala e JDK

Antes de criar seu JAR, verifique se a versão do Java Development Kit (JDK) e do Scala que você usa para compilar seu código são suportadas para computação sem servidor. Para detalhes sobre este requisito, veja Configurar versões do JDK e Scala.

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

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

scalaVersion := "2.13.16"

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

Etapa 3: Adicionar Databricks Connect como uma dependência

Adicione Databricks Connect como uma dependência para criar JARs Scala. Para obter mais informações, consulte Dependências do Spark.

No arquivo de compilação do seu projeto Scala build.sbt , 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"

Etapa 4: Adicionar outras dependências

O Databricks recomenda empacotar seu aplicativo e todas as bibliotecas dependentes em um único arquivo JAR, também conhecido como über ou fat JAR. Como alternativa, você pode instalar bibliotecas dependentes como bibliotecas com escopo de computação ou em seu ambiente sem servidor. Para mais informações, consulte Dependências de 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ências do Spark.

Etapa 5: Adicionar código Spark

Crie sua classe principal em src/main/scala/example/DatabricksExample.scala. Para detalhes sobre a utilização da sessão Spark no seu código Scala, veja Use the Databricks Spark session.

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

Etapa 6: Executar e construir seu código

Em seguida, execute seu código:

sbt run

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

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

Etapa 7: Implantar seu JAR

Agora implante seu arquivo JAR usando uma tarefa JAR da interface do usuário ou usando Databricks Asset Bundles:

Observação

O JAR que você criou também é suportado na computação padrão. No entanto, para computação padrão, um administrador deve adicionar coordenadas Maven e caminhos para bibliotecas JAR a uma lista de permissões. Consulte bibliotecas de Lista de Permissões e scripts de inicialização em computadores com o modo de acesso padrão (anteriormente modo de acesso compartilhado).

O Databricks recomenda adicionar um volume inteiro em vez de JARs individuais à lista de permissões.