Partilhar 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 for Databricks Runtime 13.3 LTS e superior e executa código simples na computação em seu espaço de trabalho Databricks do IntelliJ IDEA.

Sugestão

Para saber como usar o Databricks Asset Bundles para criar um projeto Scala que executa código em computação sem servidor, consulte Criar um JAR Scala usando Databricks Asset Bundles.

Requerimentos

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

  • Seu espaço de trabalho, ambiente local e computação atendem aos requisitos do Databricks Connect for Scala. Consulte Requisitos de uso do 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. 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 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 OAuth de utilizador-para-máquina (U2M) do Azure Databricks e um perfil de configuração do Azure Databricks para autenticar com o 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. Instale a interface de comando 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 winget, Chocolatey ou Windows Subsystem for Linux (WSL) para instalar a CLI do Databricks. Se não puder utilizar winget, o Chocolatey ou WSL, deve ignorar este procedimento e usar o Prompt de Comando ou o PowerShell para instalar a Databricks CLI a partir do código-fonte.

    Observação

    Instalar o Databricks CLI 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
    

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 para cada espaço de trabalho, 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 é 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 seu terminal ou prompt de comando, utilize as teclas de seta para cima e para baixo para selecionar o cluster Azure Databricks desejado no 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 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 interface de linha de comando 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 Ficheiro > 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. Consulte Requisitos.

    Observação

    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. Consulte Requisitos.

    Observação

    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 o seu novo projecto Scala aberto, na janela de ferramentas do Project (View > Tool Windows > Project), abra o ficheiro chamado build.sbt, em alvo.

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

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

    Substitua 17.0 pela versão da biblioteca Databricks Connect que corresponde à versão do Databricks Runtime no cluster. Por exemplo, o Databricks Connect 16.4.+ corresponde ao Databricks Runtime 16.4 LTS. Você pode encontrar os números de versão 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 Load sbt changes para atualizar o seu projeto Scala com a nova localização e a dependência da biblioteca.

    Instalar o pacote Databricks Connect

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

Passo 4: Adicionar código

  1. Na janela da ferramenta Project, abra o arquivo chamado Main.scala, em nome do projeto> 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: Configurar as opções da VM

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

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

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

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

    Editar principal

    Adicionar opções de VM

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

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

Sugestão

Como alternativa, ou se você estiver usando o Visual Studio Code, adicione o seguinte ao seu arquivo de compilação sbt:

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

Em seguida, execute a sua aplicação a partir do terminal:

sbt run

Etapa 6: 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 (Ver > Janelas de Ferramentas > Executar), na guia Principal , as primeiras cinco linhas da tabela samples.nyctaxi.trips estão visíveis.

Etapa 7: Depurar o código

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

  2. No menu principal, clique em Executar > depuração 'Principal'. Na janela da ferramenta Debug (View > Tool Windows > Debug), na guia Console, clique no ícone da 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 da ferramenta Depurar , clique no ícone de seta verde (Retomar Programa). As primeiras 5 linhas da samples.nyctaxi.trips tabela aparecem no painel Console .

    Depurar o projeto IntelliJ IDEA