Instale o Databricks Connect para Scala

Observação

Este artigo aborda o Databricks Connect para Databricks Runtime 13.3 LTS e acima.

Este artigo descreve como instalar o Databricks Connect for Scala. Consulte O que é o Databricks Connect?. Para a versão Python destes artigos, consulte Instalar o Databricks Connect for Python.

Requisitos

  • O workspace e clusters do Databricks de destino devem atender aos requisitos de configuraçãoclusters para o Databricks Connect.

  • O Java Development Kit (JDK) instalado em sua máquina de desenvolvimento. A Databricks recomenda que a versão da instalação do JDK usada corresponda à versão do JDK nos clusters do Databricks. Para encontrar a versão do JDK em seus clusters, consulte a seção “Ambiente do sistema” das notas sobre a versão do Databricks Runtime para seus clusters. Por exemplo, Zulu 8.70.0.23-CA-linux64 corresponde ao JDK 8. Consulte Databricks Runtime notas sobre a versão versões e compatibilidade.

  • Scala instalado em sua máquina de desenvolvimento. A Databricks recomenda que a versão da instalação do Scala usada corresponda à versão do Scala nos clusters do Databricks. Para encontrar a versão Scala em seus clusters, consulte a seção “Ambiente do sistema” das notas sobre a versão do Databricks Runtime para seus clusters. Consulte notas do Databricks Runtime sobre versões de versão e compatibilidade.

  • Uma ferramenta de compilação Scala na sua máquina de desenvolvimento, como sbt.

Configurar o cliente

Depois de atender aos requisitos do Databricks Connect, conclua as etapas a seguir para configurar o cliente Databricks Connect.

o passo 1: Adicionar uma referência ao cliente Databricks Connect

  1. No arquivo de build do seu projeto Scala, como build.sbt para sbt, pom.xml para Maven ou build.gradle para Gradle, adicione a seguinte referência ao cliente Databricks Connect:

    libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
    
    <dependency>
      <groupId>com.databricks</groupId>
      <artifactId>databricks-connect</artifactId>
      <version>14.0.0</version>
    </dependency>
    
    implementation 'com.databricks.databricks-connect:14.0.0'
    
  2. Substitua 14.0.0 pela versão da biblioteca Databricks Connect que corresponde à versão do Databricks Runtime nos seus clusters. Você pode encontrar os números de versão da biblioteca do Databricks Connect no repositório central do Maven.

passo 2: configurar as propriedades da conexão

Nesta seção, você configura propriedades para estabelecer uma conexão entre o Databricks Connect e seus clusters remotos do Databricks. Essas propriedades incluem configurações para autenticar o Databricks Connect com seus clusters.

Para Databricks Connect for Databricks Runtime 13.3 LTS e acima, para Scala, Databricks Connect inclui o Databricks SDK for Java. Este SDK implementa o padrão de autenticação unificada do cliente Databricks , uma abordagem arquitetônica e programática consolidada e consistente para autenticação. Esta abordagem torna a configuração e a automação da autenticação com Databricks mais centralizada e previsível. Ele permite que você configure a autenticação do Databricks uma vez e, em seguida, use essa configuração em várias ferramentas e SDKs do Databricks sem mais alterações na configuração de autenticação.

Observação

  1. Colete as propriedades de configuração a seguir.

  2. Configure a conexão dentro do seu código. O Databricks Connect procura propriedades de configuração na seguinte ordem até encontrá-las. Depois de encontrá-los, ele para de pesquisar as opções restantes. Os detalhes de cada opção aparecem após a tabela a seguir:

    Opção de propriedades de configuração

    Aplica-se a

    1. O método remote() da classe DatabricksSession

    Somente autenticação access token pessoal do Databricks

    1. Um perfil de configuração do Databricks

    Todos os tipos de autenticação do Databricks

    1. A variável de ambiente SPARK_REMOTE

    Somente autenticação access token pessoal do Databricks

    1. A variável de ambiente DATABRICKS_CONFIG_PROFILE

    Todos os tipos de autenticação do Databricks

    1. Uma variável de ambiente para cada propriedade de configuração

    Todos os tipos de autenticação do Databricks

    1. Um perfil de configuração do Databricks chamado DEFAULT

    Todos os tipos de autenticação do Databricks

    1. O método remote() da classe DatabricksSession

      Para esta opção, que se aplica apenas à autenticação access token pessoal do Databricks , especifique o nome da instância workspace , o access token pessoal do Databricks e a ID dos clusters.

      Você pode inicializar a classe DatabricksSession de diversas maneiras, como a seguir:

      • Defina os campos host, token e clusterId em DatabricksSession.builder.

      • Use a classe Config do SDK do Databricks.

      • Especifique um perfil de configuração do Databricks junto com o campo clusterId .

      Databricks não recomenda que você especifique diretamente essas propriedades de conexão em seu código. Em vez disso, a Databricks recomenda configurar propriedades através de variáveis de ambiente ou ficheiros de configuração, conforme descrito ao longo desta secção. Os exemplos de código a seguir pressupõem que você mesmo forneça alguma implementação das funções retrieve* propostas para obter as propriedades necessárias do usuário ou de algum outro armazenamento de configuração, como o Secret Manager clouds do Google.

      O código para cada uma dessas abordagens é o seguinte:

      // Set the host, token, and clusterId fields in DatabricksSession.builder.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder()
        .host(retrieveWorkspaceInstanceName())
        .token(retrieveToken())
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
      // Use the Databricks SDK's Config class.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setHost(retrieveWorkspaceInstanceName())
        .setToken(retrieveToken())
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
      // Specify a Databricks configuration profile along with the clusterId field.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
    2. Um perfil de configuração do Databricks

      Para esta opção, crie ou identifique um perfil de configuração do Databricks contendo o campo cluster_id e quaisquer outros campos necessários para o tipo de autenticação do Databricks compatível que você deseja usar.

      Os campos de perfil de configuração obrigatórios para cada tipo de autenticação são os seguintes:

      Em seguida, defina o nome desse perfil de configuração por meio da classe DatabricksConfig .

      Você pode especificar cluster_id de algumas maneiras, como segue:

      • Inclua o campo cluster_id em seu perfil de configuração e especifique apenas o nome do perfil de configuração.

      • Especifique o nome do perfil de configuração junto com o campo clusterId .

      Se você já configurou a variável de ambiente DATABRICKS_CLUSTER_ID com o ID dos clusters , também não será necessário especificar os campos cluster_id ou clusterId.

      O código para cada uma dessas abordagens é o seguinte:

      // Include the cluster_id field in your configuration profile, and then
      // just specify the configuration profile's name:
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
        val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .getOrCreate()
      
      // Specify the configuration profile name along with the clusterId field.
      // In this example, retrieveClusterId() assumes some custom implementation that
      // you provide to get the cluster ID from the user or from some other
      // configuration store:
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
    3. A variável de ambiente SPARK_REMOTE

      Para esta opção, que se aplica apenas à autenticação access token pessoal do Databricks , defina a variável de ambiente SPARK_REMOTE como as strings a seguir, substituindo os espaços reservados pelos valores apropriados.

      sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
      

      Em seguida, inicialize a classe DatabricksSession da seguinte maneira:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Para definir variável de ambiente, consulte a documentação do seu sistema operacional.

    4. A variável de ambiente DATABRICKS_CONFIG_PROFILE

      Para esta opção, crie ou identifique um perfil de configuração do Databricks contendo o campo cluster_id e quaisquer outros campos necessários para o tipo de autenticação do Databricks compatível que você deseja usar.

      Se você já configurou a variável de ambiente DATABRICKS_CLUSTER_ID com o ID dos clusters , também não será necessário especificar cluster_id.

      Os campos de perfil de configuração obrigatórios para cada tipo de autenticação são os seguintes:

      Defina a variável de ambiente DATABRICKS_CONFIG_PROFILE com o nome deste perfil de configuração. Em seguida, inicialize a classe DatabricksSession da seguinte maneira:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Para definir variável de ambiente, consulte a documentação do seu sistema operacional.

    5. Uma variável de ambiente para cada propriedade de configuração

      Para esta opção, defina a variável de ambiente DATABRICKS_CLUSTER_ID e quaisquer outras variáveis de ambiente necessárias para o tipo de autenticação do Databricks compatível que você deseja usar.

      As variáveis de ambiente necessárias para cada tipo de autenticação são as seguintes:

      Em seguida, inicialize a classe DatabricksSession da seguinte maneira:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Para definir variável de ambiente, consulte a documentação do seu sistema operacional.

    6. Um perfil de configuração do Databricks chamado DEFAULT

      Para esta opção, crie ou identifique um perfil de configuração do Databricks contendo o campo cluster_id e quaisquer outros campos necessários para o tipo de autenticação do Databricks compatível que você deseja usar.

      Se você já configurou a variável de ambiente DATABRICKS_CLUSTER_ID com o ID dos clusters , também não será necessário especificar cluster_id.

      Os campos de perfil de configuração obrigatórios para cada tipo de autenticação são os seguintes:

      Nomeie esse perfil de configuração DEFAULT.

      Em seguida, inicialize a classe DatabricksSession da seguinte maneira:

      scala
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()