Instalar o Databricks Connect for Scala
Nota
Este artigo aborda o Databricks Connect for Databricks Runtime 13.3 LTS e superior.
Este artigo descreve como instalar o Databricks Connect for Scala. Consulte O que é Databricks Connect?. Para a versão Python deste artigo, consulte Install Databricks Connect for Python.
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.
- 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. Para localizar a versão do JDK em seu cluster, consulte a seção "Ambiente do sistema" das notas de versão do Databricks Runtime para seu cluster. Por exemplo,
Zulu 8.70.0.23-CA-linux64
corresponde ao JDK 8. Consulte Notas de versão, versões e compatibilidade do Databricks Runtime. - Scala instalado em sua máquina de desenvolvimento. O Databricks recomenda que a versão da instalação do Scala que você usa corresponda à versão do Scala no cluster do Azure Databricks. Para localizar a versão do Scala em seu cluster, consulte a seção "Ambiente do sistema" das notas de versão do Databricks Runtime para seu cluster. Consulte Notas de versão, versões e compatibilidade do Databricks Runtime.
- Uma ferramenta de construção Scala em 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.
Etapa 1: Adicionar uma referência ao cliente Databricks Connect
No arquivo de compilação do seu projeto Scala, como
build.sbt
parasbt
,pom.xml
para Maven oubuild.gradle
para Gradle, adicione a seguinte referência ao cliente Databricks Connect:Sbt
libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
Maven
<dependency> <groupId>com.databricks</groupId> <artifactId>databricks-connect</artifactId> <version>14.0.0</version> </dependency>
Gradle
implementation 'com.databricks.databricks-connect:14.0.0'
Substitua
14.0.0
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.
Etapa 2: Configurar propriedades de conexão
Nesta seção, você configura propriedades para estabelecer uma conexão entre o Databricks Connect e seu cluster remoto do Azure Databricks. Essas propriedades incluem configurações para autenticar o Databricks Connect com seu cluster.
Para Databricks Connect for Databricks Runtime 13.3 LTS e superior, para Scala, o 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. Essa abordagem torna a configuração e a automação da autenticação com o Azure Databricks mais centralizadas e previsíveis. Ele permite que você configure a autenticação do Azure Databricks uma vez e, em seguida, use essa configuração em várias ferramentas e SDKs do Azure Databricks sem alterações adicionais na configuração de autenticação.
Nota
A autenticação OAuth user-to-machine (U2M) é suportada no Databricks SDK para Java 0.18.0 e superior. Talvez seja necessário atualizar a versão instalada do seu projeto de código do Databricks SDK for Java para 0.18.0 ou superior para usar a autenticação OAuth U2M. Consulte Introdução ao SDK do Databricks para Java.
Para autenticação OAuth U2M, você deve usar a CLI do Databricks para autenticar antes de executar o código Scala. Consulte o Tutorial.
A autenticação OAuth máquina-a-máquina (M2M) é suportada no Databricks SDK para Java 0.17.0 e superior. Talvez seja necessário atualizar a versão instalada do seu projeto de código do Databricks SDK for Java para 0.17.0 ou superior para usar a autenticação OAuth U2M. Consulte Introdução ao SDK do Databricks para Java.
O SDK do Databricks para Java ainda não implementou a autenticação de identidades gerenciadas do Azure.
Colete as seguintes propriedades de configuração.
- O nome da instância do espaço de trabalho do Azure Databricks. Isso é o mesmo que o valor de Nome de host do servidor para seu cluster; consulte Obter detalhes de conexão para um recurso de computação do Azure Databricks.
- A ID do cluster. Você pode obter o ID do cluster a partir da URL. Consulte URL e ID do cluster.
- Quaisquer outras propriedades que sejam necessárias para o tipo de autenticação Databricks suportado. Essas propriedades são descritas ao longo desta seção.
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 procurar 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 DatabricksSession
método daremote()
classeSomente autenticação de token de acesso pessoal do Azure Databricks 2. Um perfil de configuração do Azure Databricks Todos os tipos de autenticação do Azure Databricks 3. A SPARK_REMOTE
variável ambienteSomente autenticação de token de acesso pessoal do Azure Databricks 4. A DATABRICKS_CONFIG_PROFILE
variável ambienteTodos os tipos de autenticação do Azure Databricks 5. Uma variável de ambiente para cada propriedade de configuração Todos os tipos de autenticação do Azure Databricks 6. Um perfil de configuração do Azure Databricks chamado DEFAULT
Todos os tipos de autenticação do Azure Databricks O
DatabricksSession
método daremote()
classePara esta opção, que se aplica apenas à autenticação do token de acesso pessoal do Azure Databricks, especifique o nome da instância do espaço de trabalho, o token de acesso pessoal do Azure Databricks e a ID do cluster.
Você pode inicializar a classe de
DatabricksSession
várias maneiras, da seguinte maneira:- Defina os
host
camposDatabricksSession.builder
,token
e emclusterId
. - Use a classe do SDK do Databricks
Config
. - Especifique um perfil de configuração do Databricks junto com o
clusterId
campo.
O Databricks não recomenda que você especifique diretamente essas propriedades de conexão em seu código. Em vez disso, o Databricks recomenda configurar propriedades por meio de variáveis de ambiente ou arquivos de configuração, conforme descrito nesta seção. Os exemplos de código a seguir pressupõem que você mesmo forneça alguma implementação das funções propostas
retrieve*
para obter as propriedades necessárias do usuário ou de algum outro repositório de configuração, como o Azure KeyVault.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()
- Defina os
Um perfil de configuração do Azure Databricks
Para essa opção, crie ou identifique um perfil de configuração do Azure Databricks contendo o campo
cluster_id
e quaisquer outros campos necessários para o tipo de autenticação Databricks com suporte que você deseja usar.Os campos de perfil de configuração necessários para cada tipo de autenticação são os seguintes:
- Para autenticação de token de acesso pessoal do Azure Databricks:
host
etoken
. - Para autenticação OAuth máquina-a-máquina (M2M) (quando suportado):
host
,client_id
eclient_secret
. - Para autenticação OAuth user-to-machine (U2M) (quando suportado):
host
. - Para a autenticação da entidade de serviço do Microsoft Entra ID (anteriormente Azure Ative Directory):
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
e possivelmenteazure_workspace_resource_id
. - Para autenticação da CLI do Azure:
host
. - Para autenticação de identidades gerenciadas do Azure (quando suportado):
host
,azure_use_msi
,azure_client_id
e possivelmenteazure_workspace_resource_id
.
Em seguida, defina o nome desse perfil de configuração através da
DatabricksConfig
classe.Você pode especificar
cluster_id
de algumas maneiras, da seguinte maneira:- Inclua o
cluster_id
campo no seu perfil de configuração e, em seguida, especifique apenas o nome do perfil de configuração. - Especifique o nome do perfil de configuração juntamente com o
clusterId
campo.
Se você já tiver definido a
DATABRICKS_CLUSTER_ID
variável de ambiente com a ID do cluster, também não precisará especificar oscluster_id
campos orclusterId
.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()
- Para autenticação de token de acesso pessoal do Azure Databricks:
A
SPARK_REMOTE
variável de ambientePara esta opção, que se aplica apenas à autenticação de token de acesso pessoal do Azure Databricks, defina a
SPARK_REMOTE
variável de ambiente para a seguinte cadeia de caracteres, 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
DatabricksSession
classe da seguinte maneira:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Para definir variáveis de ambiente, consulte a documentação do seu sistema operacional.
A
DATABRICKS_CONFIG_PROFILE
variável de ambientePara essa opção, crie ou identifique um perfil de configuração do Azure Databricks contendo o campo
cluster_id
e quaisquer outros campos necessários para o tipo de autenticação Databricks com suporte que você deseja usar.Se você já tiver definido a
DATABRICKS_CLUSTER_ID
variável de ambiente com a ID do cluster, também não precisará especificarcluster_id
.Os campos de perfil de configuração necessários para cada tipo de autenticação são os seguintes:
- Para autenticação de token de acesso pessoal do Azure Databricks:
host
etoken
. - Para autenticação OAuth máquina-a-máquina (M2M) (quando suportado):
host
,client_id
eclient_secret
. - Para autenticação OAuth user-to-machine (U2M) (quando suportado):
host
. - Para a autenticação da entidade de serviço do Microsoft Entra ID (anteriormente Azure Ative Directory):
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
e possivelmenteazure_workspace_resource_id
. - Para autenticação da CLI do Azure:
host
. - Para autenticação de identidades gerenciadas do Azure (quando suportado):
host
,azure_use_msi
,azure_client_id
e possivelmenteazure_workspace_resource_id
.
Defina a
DATABRICKS_CONFIG_PROFILE
variável de ambiente como o nome desse perfil de configuração. Em seguida, inicialize aDatabricksSession
classe da seguinte maneira:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Para definir variáveis de ambiente, consulte a documentação do seu sistema operacional.
- Para autenticação de token de acesso pessoal do Azure Databricks:
Uma variável de ambiente para cada propriedade de configuração
Para essa opção, defina a
DATABRICKS_CLUSTER_ID
variável de ambiente e quaisquer outras variáveis de ambiente necessárias para o tipo de autenticação Databricks suportado que você deseja usar.As variáveis de ambiente necessárias para cada tipo de autenticação são as seguintes:
- Para autenticação de token de acesso pessoal do Azure Databricks:
DATABRICKS_HOST
eDATABRICKS_TOKEN
. - Para autenticação OAuth máquina-a-máquina (M2M) (quando suportado):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
eDATABRICKS_CLIENT_SECRET
. - Para autenticação OAuth user-to-machine (U2M) (quando suportado):
DATABRICKS_HOST
. - Para a autenticação da entidade de serviço do Microsoft Entra ID (anteriormente Azure Ative Directory):
DATABRICKS_HOST
,ARM_TENANT_ID
,ARM_CLIENT_ID
,ARM_CLIENT_SECRET
e possivelmenteDATABRICKS_AZURE_RESOURCE_ID
. - Para autenticação da CLI do Azure:
DATABRICKS_HOST
. - Para autenticação de identidades gerenciadas do Azure (quando suportado):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
e possivelmenteDATABRICKS_AZURE_RESOURCE_ID
.
Em seguida, inicialize a
DatabricksSession
classe da seguinte maneira:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Para definir variáveis de ambiente, consulte a documentação do seu sistema operacional.
- Para autenticação de token de acesso pessoal do Azure Databricks:
Um perfil de configuração do Azure Databricks chamado
DEFAULT
Para essa opção, crie ou identifique um perfil de configuração do Azure Databricks contendo o campo
cluster_id
e quaisquer outros campos necessários para o tipo de autenticação Databricks com suporte que você deseja usar.Se você já tiver definido a
DATABRICKS_CLUSTER_ID
variável de ambiente com a ID do cluster, também não precisará especificarcluster_id
.Os campos de perfil de configuração necessários para cada tipo de autenticação são os seguintes:
- Para autenticação de token de acesso pessoal do Azure Databricks:
host
etoken
. - Para autenticação OAuth máquina-a-máquina (M2M) (quando suportado):
host
,client_id
eclient_secret
. - Para autenticação OAuth user-to-machine (U2M) (quando suportado):
host
. - Para a autenticação da entidade de serviço do Microsoft Entra ID (anteriormente Azure Ative Directory):
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
e possivelmenteazure_workspace_resource_id
. - Para autenticação da CLI do Azure:
host
. - Para autenticação de identidades gerenciadas do Azure (quando suportado):
host
,azure_use_msi
,azure_client_id
e possivelmenteazure_workspace_resource_id
.
Nomeie este perfil
DEFAULT
de configuração .Em seguida, inicialize a
DatabricksSession
classe da seguinte maneira:scala import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
- Para autenticação de token de acesso pessoal do Azure Databricks: