Databricks Connect para Scala

Nota

Este artigo aborda o Databricks Connect for 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.

O Databricks Connect permite conectar IDEs populares, como IntelliJ IDEA, servidores de notebook e outros aplicativos personalizados, a clusters do Azure Databricks. Consulte O que é Databricks Connect?.

Tutorial

Para ignorar este tutorial e usar um IDE diferente, consulte Próximas etapas.

Requisitos

Para concluir este tutorial, você deve atender aos seguintes requisitos:

  • Seu espaço de trabalho e cluster do Azure Databricks de destino devem atender aos requisitos de configuração do Cluster para Databricks Connect.

  • Você deve ter seu ID de cluster disponível. Para obter a ID do cluster, no espaço de trabalho, clique em Computação na barra lateral e, em seguida, clique no nome do cluster. Na barra de endereço do navegador da Web, copie a cadeia de caracteres entre clusters e configuration no URL.

  • Você tem o Java Development Kit (JDK) instalado em sua máquina de desenvolvimento. O Databricks recomenda que a versão da instalação do JDK que você usa corresponda à versão do JDK no cluster do Azure Databricks. A tabela a seguir mostra a versão do JDK para cada Databricks Runtime suportado.

    Versão do Databricks Runtime Versão JDK
    13,3 LTS - 15,0,
    13,3 ML LTS - 15,0 ML
    JDK 8

    Nota

    Se você não tiver um JDK instalado ou se tiver várias instalações do JDK em sua máquina de desenvolvimento, poderá instalar ou escolher um JDK específico posteriormente na Etapa 1. Escolher uma instalação do JDK abaixo ou acima da versão do JDK no cluster pode produzir resultados inesperados ou o 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 podem variar.

  • Você tem o plugin Scala para IntelliJ IDEA instalado.

Etapa 1: Configurar a autenticação do Azure Databricks

Este tutorial usa a autenticação U2M (U2M) do Azure Databricks OAuth e um perfil de configuração do Azure Databricks para autenticação com seu espaço de trabalho do Azure Databricks. Para usar um tipo de autenticação diferente, consulte Configurar propriedades de conexão.

A configuração da autenticação OAuth U2M requer a CLI do Databricks, da seguinte maneira:

  1. Se ainda não estiver instalado, instale a CLI do Databricks da 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 winget, Chocolatey ou Windows Subsystem for Linux (WSL) para instalar a CLI do Databricks. Se você não puder usar wingeto , Chocolatey ou WSL, ignore este procedimento e use o Prompt de Comando ou o PowerShell para instalar a CLI do Databricks a partir do código-fonte .

    Nota

    Instalar a CLI Databricks com Chocolatey é 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:

    1. Instale curl e zip através do WSL. Para obter mais informações, consulte a documentação do seu sistema operacional.

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

    Nota

    Se você executar databricks , mas receber um erro como command not found: databricks, ou se você executar databricks -v e um número de versão de 0,18 ou abaixo estiver listado, isso significa que sua máquina não pode encontrar a versão correta do executável da CLI do Databricks. Para corrigir isso, consulte Verificar a instalação da CLI.

Inicie a autenticação OAuth U2M, da seguinte maneira:

  1. Use a CLI do Databricks para iniciar o gerenciamento de token OAuth localmente executando o seguinte comando para cada espaço de trabalho de destino.

    No comando a seguir, substitua <workspace-url> pela URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --configure-cluster --host <workspace-url>
    
  2. 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 é substituído pelas informações que você inseriu. Você pode usar perfis para alternar rapidamente seu contexto de autenticação em vários espaços de trabalho.

    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 comando databricks auth env --profile <profile-name>.

  3. No navegador da Web, conclua as instruções na tela para fazer logon no espaço de trabalho do Azure Databricks.

  4. Na lista de clusters disponíveis que aparece no terminal ou no prompt de comando, use as teclas de seta para cima e seta para baixo para selecionar o cluster Azure Databricks de destino 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.

  5. Para exibir 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 você tiver vários perfis com o mesmo --host valor, talvez seja necessário especificar as --host opções e -p juntas para ajudar a CLI do Databricks a encontrar as informações corretas do token OAuth.

Etapa 2: Criar o projeto

  1. Inicie o IntelliJ IDEA.

  2. No menu principal, clique em Arquivo > Novo > Projeto.

  3. Dê ao seu projeto algum nome significativo.

  4. Em Local, clique no ícone de pasta e conclua as instruções na tela para especificar o caminho para seu novo projeto Scala.

  5. Em Idioma, clique em Scala.

  6. Para Build system, clique em sbt.

  7. Na lista suspensa JDK, selecione uma instalação existente do JDK em sua máquina de desenvolvimento que corresponda à versão do JDK em seu cluster ou selecione Baixar JDK e siga as instruções na tela para fazer download de um JDK que corresponda à versão do JDK em seu cluster.

    Nota

    Escolher uma instalação do JDK acima ou abaixo da versão do JDK no cluster pode produzir resultados inesperados ou o código pode não ser executado.

  8. Na lista suspensa sbt, selecione a versão mais recente.

  9. Na lista suspensa Scala, selecione a versão do Scala que corresponde à versão do Scala no cluster. A tabela a seguir mostra a versão do Scala para cada Databricks Runtime suportado:

    Versão do Databricks Runtime Versão Scala
    13,3 LTS - 15,0,
    13,3 ML LTS - 15,0 ML
    2.12.15

    Nota

    Escolher uma versão do Scala abaixo ou acima da versão do Scala no cluster pode produzir resultados inesperados ou o código pode não ser executado.

  10. Verifique se a caixa Baixar fontes ao lado de Scala está marcada.

  11. Para Prefixo do pacote, insira algum valor de prefixo do pacote para os códigos-fonte do seu projeto, por exemplo org.example.application.

  12. Verifique se a caixa Adicionar código de exemplo está marcada.

  13. Clique em Criar.

Criar o projeto IntelliJ IDEA

Etapa 3: Adicionar o pacote Databricks Connect

  1. Com seu novo projeto Scala aberto, na janela da ferramenta Project (View > Tool Windows > Project), abra o arquivo chamado build.sbt, no destino do nome> do projeto.

  2. Adicione o seguinte código ao final do arquivo, que declara a build.sbt dependência do seu projeto em uma versão específica da biblioteca Databricks Connect para Scala:

    libraryDependencies += "com.databricks" % "databricks-connect" % "14.3.1"
    

    Substitua 14.3.1 pela versão da biblioteca Databricks Connect que corresponde à versão do Databricks Runtime no cluster. Você pode encontrar os números de versão da biblioteca Databricks Connect no repositório central do Maven.

  3. Clique no ícone de notificação de alterações do Load sbt para atualizar seu projeto Scala com o novo local e dependência da biblioteca.

  4. Aguarde até que o sbt indicador de progresso na parte inferior do IDE desapareça. O sbt processo de carregamento pode levar alguns minutos para ser concluído.

Instalar o pacote Databricks Connect

Passo 4: Adicionar código

  1. Na janela da ferramenta Project, abra o arquivo chamado Main.scala, em project-name> src > main > scala.

  2. Substitua qualquer código existente no arquivo pelo código a seguir e salve o arquivo, dependendo do nome do seu perfil de configuração.

    Se o seu perfil de configuração da Etapa 1 for nomeado DEFAULT, substitua qualquer código existente no arquivo pelo seguinte código e, em seguida, 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 seu perfil de configuração da Etapa 1 não for nomeado DEFAULT, substitua qualquer código existente no arquivo pelo código a seguir. Substitua o espaço reservado <profile-name> pelo nome do seu perfil de configuração na 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

  1. Inicie o cluster de destino em seu espaço de trabalho remoto do Azure Databricks.
  2. Depois que o cluster for iniciado, no menu principal, clique em Executar > Executar 'Principal'.
  3. Na janela da ferramenta Executar (Exibir > Ferramenta Executar do Windows>), na guia Principal, as primeiras 5 linhas da samples.nyctaxi.trips tabela aparecem.

Etapa 6: Depurar o código

  1. Com o cluster de destino ainda em execução, no código anterior, clique na calha ao lado de df.limit(5).show() para definir um ponto de interrupção.
  2. No menu principal, clique em Executar > depuração 'Principal'.
  3. Na janela da ferramenta Depurar (Exibir Ferramenta de > Depuração do Windows>), na guia Console, clique no ícone da calculadora (Avaliar Expressão).
  4. Insira a expressão df.schema e clique em Avaliar para mostrar o esquema do DataFrame.
  5. Na barra lateral da janela da ferramenta Depurar , clique no ícone de seta verde (Retomar Programa).
  6. No painel Console, as primeiras 5 linhas da samples.nyctaxi.trips tabela são exibidas.

Depurar o projeto IntelliJ IDEA

Próximos passos

Para saber mais sobre o Databricks Connect, consulte artigos como os seguintes: