Databricks Connect para Scala
Observação
Esse artigo aborda o Databricks Connect para Databricks Runtime 13.3 LTS e superior.
Este artigo demonstra como começar rapidamente com o Databricks Connect usando o Scala com o IntelliJ IDEA e o plug-in Scala.
- Para obter a versão em Python deste artigo, consulte Databricks Connect para Python.
- Para obter a versão R deste artigo, consulte Databricks Connect para R.
O Databricks Connect permite que você conecte IDEs populares, como o IntelliJ IDEA, servidores de notebook e outros aplicativos personalizados aos clusters do Azure Databricks. Consulte O que é o Databricks Connect?.
Tutorial
Para ignorar este tutorial e usar um IDE diferente, confira Próximas etapas.
Requisitos
Para concluir este tutorial, você deve atender aos seguintes requisitos:
O cluster e o workspace do Azure Databricks de destino devem atender aos requisitos de Configuração de cluster para o Databricks Connect.
Você deve ter a ID do cluster disponível. Para obter a ID do cluster, no espaço de trabalho, clique em Computação na barra lateral e clique no nome do cluster. Na barra de endereços do navegador da Web, copie a cadeia de caracteres entre
clusters
econfiguration
na URL.Você tem o JDK (Java Development Kit) instalado em seu computador de desenvolvimento. O Databricks recomenda que a versão da instalação do JDK que você usa corresponda à versão do JDK em seu cluster do Azure Databricks. A tabela a seguir mostra a versão do JDK para cada Databricks Runtime com suporte.
Versão do Databricks Runtime Versão do JDK 13.3 LTS - 15.0,
13.3 ML LTS – 15.0 MLJDK 8 Observação
Se você não tiver um JDK instalado ou se tiver várias instalações do JDK em seu computador de desenvolvimento, poderá instalar ou escolher um JDK específico mais adiante na Etapa 1. Escolher uma instalação do JDK abaixo ou acima da versão do JDK em seu cluster pode produzir resultados inesperados ou seu código pode não ser executado.
Você tem o IntelliJ IDEA instalado. Este tutorial foi testado com o IntelliJ IDEA Community Edition 2023.3.6. Se você usar uma versão ou edição diferente do IntelliJ IDEA, as instruções a seguir poderão variar.
Você tem o plug-in Scala para IntelliJ IDEA instalado.
Etapa 1: Configurar a autenticação do Azure Databricks
Esse tutorial usa Azure Databricks Autenticação usuário-máquina (U2M) OAuth e um perfil de configuração Azure Databricks para autenticação com seu espaço de trabalho Azure Databricks. Para usar um tipo de autenticação diferente, confira Configurar propriedades de conexão.
Configurar a autenticação OAuth U2M requer a CLI do Databricks, da seguinte forma:
Se ela ainda não estiver instalada, instale a CLI do Databricksda seguinte maneira:
Linux, macOS
Use o Homebrew para instalar a CLI do Databricks executando os dois comandos a seguir:
brew tap databricks/tap brew install databricks
Windows
Você pode usar o winget, o Chocolatey ou o Subsistema do Windows para Linux (WSL) para instalar a CLI do Databricks. Se você não puder usar o
winget
, WSL ou o Chocolatey, ignore este procedimento e use o Prompt de Comando ou o PowerShell para instalar a CLI do Databricks a partir da origem.Observação
Instalar a CLI do Databricks com Chocolatey é considerada Experimental.
Para usar
winget
para instalar a CLI do Databricks, execute os dois comandos a seguir e reinicie o Prompt de Comando:winget search databricks winget install Databricks.DatabricksCLI
Para usar o Chocolatey para instalar a CLI do Databricks, execute o seguinte comando:
choco install databricks-cli
Para usar o WSL para instalar a CLI do Databricks:
Instale
curl
ezip
por meio do WSL. Para obter mais informações, consulte a documentação do seu sistema operacional.Use o WSL para instalar a CLI do Databricks executando o seguinte comando:
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
Confirme se a CLI do Databricks está instalada executando o seguinte comando, que exibe a versão atual da CLI do Databricks instalada. Esta versão deve ser 0.205.0 ou superior:
databricks -v
Observação
Se você executar
databricks
, mas receber um erro comocommand not found: databricks
, ou se você executardatabricks -v
e um número de versão 0.18 ou inferior estiver listado, isso significa que seu computador não poderá encontrar a versão correta do executável da CLI do Databricks. Para corrigir isso, confira: Verificar sua instalação da CLI.
Inicie a autenticação OAuth U2M da seguinte forma:
Use a Databricks CLI para iniciar o gerenciamento de token OAuth localmente executando o comando a seguir para cada workspace de destino.
No comando a seguir, substitua
<workspace-url>
pela URL por workspace do Azure Databricks, por exemplo,https://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --configure-cluster --host <workspace-url>
A CLI do Databricks solicita que você salve as informações inseridas como um perfil de configuração do Azure Databricks. Pressione
Enter
para aceitar o nome de perfil sugerido ou digite o nome de um perfil novo ou existente. Qualquer perfil existente com o mesmo nome será substituído pelas informações inseridas. Você pode usar perfis para alternar rapidamente seu contexto de autenticação em vários workspaces.Para obter uma lista de quaisquer perfis existentes, em um terminal ou prompt de comando separado, use a CLI do Databricks para executar o comando
databricks auth profiles
. Para visualizar as configurações existentes de um perfil específico, execute o comandodatabricks auth env --profile <profile-name>
.No seu navegador web, complete as instruções no ecrã para iniciar sessão no seu espaço de trabalho Azure Databricks.
Na lista de clusters disponíveis que aparece no seu terminal ou prompt de comando, use as teclas de seta para cima e para baixo para selecionar o cluster alvo do Azure Databricks em seu espaço de trabalho e pressione
Enter
. Você também pode digitar qualquer parte do nome de exibição do cluster para filtrar a lista de clusters disponíveis.Para visualizar o valor atual do token OAuth de um perfil e o carimbo de data/hora de expiração do token, execute um dos seguintes comandos:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Se tiver vários perfis com o mesmo valor
--host
, poderá ter de especificar as opções--host
e-p
em conjunto para ajudar a CLI do Databricks a encontrar as informações de token OAuth correspondentes corretas.
Etapa 2: Criar o projeto
Inicie o IntelliJ IDEA.
No menu principal, clique em Arquivo > Novo >. Projeto.
Dê um Nome significativo aoseu projeto.
Em Localização, clique no ícone de pasta e conclua as instruções na tela para especificar o caminho para o novo projeto do Scala.
Para Linguagem, clique em Scala.
Para Sistema de compilação, clique em sbt.
Na lista suspensa do JDK, selecione uma instalação existente do JDK em seu computador de desenvolvimento que corresponda à versão do JDK em seu cluster ou selecione Baixar JDK e siga as instruções na tela para baixar um JDK que corresponda à versão do JDK em seu cluster.
Observação
Escolher uma instalação do JDK acima ou abaixo da versão do JDK em seu cluster pode produzir resultados inesperados ou seu código pode não ser executado.
Na lista suspensa do sbt, selecione a versão mais recente.
Na lista suspensa Scala, selecione a versão do Scala que corresponde à versão do Scala em seu cluster. A tabela a seguir mostra a versão do Scala para cada Databricks Runtime com suporte:
Versão do Databricks Runtime Versão da escala 13.3 LTS - 15.0,
13.3 ML LTS – 15.0 ML2.12.15 Observação
Escolher uma versão do Scala abaixo ou acima da versão do Scala em seu cluster pode produzir resultados inesperados ou seu código pode não ser executado.
Verifique se a caixa Baixar fontes ao lado de Scala está marcada.
Para o prefixo do pacote, insira algum valor de prefixo de pacote para as fontes do projeto, por exemplo
org.example.application
.Verifique se a caixa Adicionar código de exemplo está selecionada.
Clique em Criar.
Etapa 3: Adicionar o pacote do Databricks Connect
Com seu novo projeto Scala aberto, na janela de ferramentas do Projeto (Exibir > Ferramenta do Windows> Projeto), abra o arquivo chamado
build.sbt
, no destino project-name>.Adicione o seguinte código ao final do arquivo
build.sbt
, que declara a dependência do projeto em uma versão específica da biblioteca do Databricks Connect para Scala:libraryDependencies += "com.databricks" % "databricks-connect" % "14.3.1"
Substitua
14.3.1
pela versão da biblioteca do Databricks Connect que corresponde à versão do Databricks Runtime em seu cluster. Você pode encontrar os números de versão da biblioteca do Databricks Connect no repositório central do Maven.Clique no ícone de notificação de alterações de sbt de carga para atualizar o projeto Scala com o novo local e a dependência da biblioteca.
Aguarde até que o indicador de progresso
sbt
na parte inferior do IDE desapareça. O processo de carregamentosbt
pode levar alguns minutos para ser concluído.
Etapa 4: Adicionar uma chave
Na janela de ferramentas do Projeto, abra o arquivo nomeado
Main.scala
, em project-name> src > main > scala.Substitua qualquer código existente no arquivo pelo código a seguir e salve o arquivo, dependendo do nome do perfil de configuração.
Se o perfil de configuração da etapa 1 se chamar
DEFAULT
, substitua qualquer código existente no arquivo pelo seguinte código e salve o arquivo:package org.example.application import com.databricks.connect.DatabricksSession import org.apache.spark.sql.SparkSession object Main { def main(args: Array[String]): Unit = { val spark = DatabricksSession.builder().remote().getOrCreate() val df = spark.read.table("samples.nyctaxi.trips") df.limit(5).show() } }
Se o perfil de configuração da etapa 1 não se chamar
DEFAULT
, substitua qualquer código existente no arquivo pelo código a seguir. Substitua o espaço reservado<profile-name>
pelo nome do perfil de configuração da etapa 1 e salve o arquivo:package org.example.application import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig import org.apache.spark.sql.SparkSession object Main { def main(args: Array[String]): Unit = { val config = new DatabricksConfig().setProfile("<profile-name>") val spark = DatabricksSession.builder().sdkConfig(config).getOrCreate() val df = spark.read.table("samples.nyctaxi.trips") df.limit(5).show() } }
Etapa 5: Executar o código
- Inicie o cluster de destino no workspace remoto do Azure Databricks.
- Depois que o cluster for iniciado, no menu principal, clique em Executar > Executar ‘Main’.
- Na janela de ferramentas Executar (Exibir > Ferramenta Windows > Executar), na guia Principal, as cinco primeiras linhas da tabela
samples.nyctaxi.trips
são exibidas.
Etapa 6: Depurar o código
- Com o cluster de destino ainda em execução, no código anterior, clique na medianiz ao lado de
df.limit(5).show()
para definir um ponto de interrupção. - No menu principal, clique em Executar > Depurar 'Principal'.
- Na janela de ferramentas Depuração (Exibir > Ferramenta do Windows> Depuração ), na guia Console, clique no ícone calculadora (Avaliar Expressão).
- Insira a expressão
df.schema
e clique em Avaliar para mostrar o esquema do DataFrame. - Na barra lateral da janela Ferramenta de Depuração, clique no ícone de seta verde (Retomar Programa).
- No painel Console, as cinco primeiras linhas da tabela
samples.nyctaxi.trips
são exibidas.
Próximas etapas
Para saber mais sobre o Databricks Connect, confira artigos como os seguintes:
Para usar os tipos de autenticação do Azure Databricks que não sejam um token de acesso pessoal do Azure Databricks, confira Configurar propriedades de conexão.
Para utilizar outros IDEs, consulte o seguinte:
Para exibir exemplos de código simples adicionais, confira Exemplos de código para o Databricks Connect para Scala.
Para exibir exemplos de código mais complexos, confira os aplicativos de exemplo para o repositório do Databricks Connect no GitHub, especificamente:
Para migrar do Databricks Connect para o Databricks Runtime 12.2 LTS e versões inferiores para o Databricks Connect para o Databricks Runtime 13.3 LTS e versões superiores, consulte Migrar para o Databricks Connect para Scala.
Confira também informações sobre solução de problemas e limitações.