Compartilhar via


Tutorial: Executar código do IntelliJ IDEA na computação clássica

Este tutorial demonstra como começar a usar o Databricks Connect for Scala usando o IntelliJ IDEA e o plug-in Scala.

Neste tutorial, você cria um projeto no IntelliJ IDEA, instala o Databricks Connect para Databricks Runtime 13.3 LTS e superior e executa um código simples na computação no workspace do Databricks do IntelliJ IDEA.

Dica

Para saber como usar pacotes de ativos do Databricks para criar um projeto Scala que executa código na computação sem servidor, consulte Criar um JAR scala usando pacotes de ativos do Databricks.

Requisitos

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

  • Seu workspace, ambiente local e computação atendem aos requisitos do Databricks Connect para Scala. Consulte os requisitos de uso do Databricks Connect.

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

  • Você tem o JDK (Java Development Kit) instalado em seu computador de desenvolvimento. Para obter informações sobre a versão a ser instalada, consulte a matriz de suporte de versão.

    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:

  1. Instale o CLI do Databricks:

    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:

    1. Instale curl e zip por meio do WSL. Para obter mais informações, consulte a documentação do 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
    

Inicie a autenticação OAuth U2M da seguinte forma:

  1. Use o CLI do Databricks para iniciar o gerenciamento local de tokens OAuth executando o seguinte comando para cada workspace de destino.

    No comando a seguir, substitua <workspace-url> pela URL de cada workspace do Azure Databricks, por exemplo, https://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 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 exibir as configurações existentes de um perfil específico, execute o comando databricks auth env --profile <profile-name>.

  3. No seu navegador da Web, complete as instruções na tela para iniciar sessão no seu workspace do Azure Databricks.

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

  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 valor --host, talvez seja necessário 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: Crie o projeto

  1. Inicie o IntelliJ IDEA.

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

  3. Dê um Nome significativo ao seu projeto.

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

  5. Para Linguagem, clique em Scala.

  6. Para Sistema de compilação, clique em sbt.

  7. 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. Confira os Requisitos

    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.

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

  9. Na lista suspensa Scala, selecione a versão do Scala que corresponde à versão do Scala em seu cluster. Confira os Requisitos

    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.

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

  11. Para Prefixo de pacote, insira algum valor de prefixo de pacote para as fontes 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 do IntelliJ IDEA

Etapa 3: Adicionar o pacote do Databricks Connect

  1. Com seu novo projeto Scala aberto, na janela de ferramentas do Project (Exibir > Ferramenta do Windows > Project), abra o arquivo chamado build.sbt, no destino nome> do projeto.

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

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

    Substitua 17.0 pela versão da biblioteca do Databricks Connect que corresponde à versão do Databricks Runtime em seu cluster. Por exemplo, o Databricks Connect 16.4.+ corresponde ao Databricks Runtime 16.4 LTS. Você pode encontrar as versões da biblioteca Databricks Connect no repositório central do Maven .

    Observação

    Ao criar com o Databricks Connect, não inclua artefatos do Apache Spark, como org.apache.spark:spark-core em seu projeto. Em vez disso, compile diretamente no Databricks Connect.

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

    Instalar o pacote do Databricks Connect

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

Etapa 4: Adicionar uma chave

  1. Na janela de ferramentas do projeto, abra o arquivo nomeado 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 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: Configurar as opções de VM

  1. Importe o diretório atual em seu IntelliJ, onde build.sbt está localizado.

  2. Escolha Java 17 no IntelliJ. Vá para Arquivo>Estrutura do Projeto>SDKs.

  3. Abra o src/main/scala/com/examples/Main.scala.

  4. Navegue até a configuração do Main para adicionar opções de VM:

    Editar Página Principal

    Adicionar opções de VM

  5. Adicione o seguinte às opções da VM:

    --add-opens=java.base/java.nio=ALL-UNNAMED
    

Dica

Como alternativa, ou se você estiver usando o Visual Studio Code, adicione o seguinte ao arquivo de build do sbt:

fork := true
javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"

Em seguida, execute seu aplicativo no terminal:

sbt run

Etapa 6: Executar o código

  1. Inicie o cluster de destino no workspace remoto do Azure Databricks.
  2. Depois que o cluster for iniciado, no menu principal, clique em Executar > Executar 'Main'.
  3. Na janela Executar ferramenta (Exibir > Ferramenta Windows > Run), na guia Principal , as cinco primeiras linhas da samples.nyctaxi.trips tabela são exibidas.

Etapa 7: Depurar o código

  1. Com o cluster de destino ainda em execução, no código anterior, clique na margem ao lado de df.limit(5).show() para definir um ponto de interrupção.

  2. No menu principal, clique em >. Na janela Ferramenta de Depuração (Exibir > Ferramenta de Depuração do Windows>), na guia Console, clique no ícone calculadora (Avaliar Expressão).

  3. Insira a expressão df.schema.

  4. Clique em Avaliar para mostrar o esquema do DataFrame.

  5. Na barra lateral da janela de ferramenta de depuração , clique no ícone de seta verde (Retomar Programa). As cinco primeiras linhas da samples.nyctaxi.trips tabela aparecem no painel Console .

    Depurar o projeto do IntelliJ IDEA