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
No arquivo de build 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: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'
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 para Databricks Runtime 13.3 LTS e acima, para Scala, Databricks Connect inclui o Databricks SDK para Java. Esse SDK implementa o padrão de autenticação unificada do cliente Databricks, uma abordagem arquitetônica e programática consolidada e consistente para a autenticação. Essa abordagem torna a configuração e a automatização da autenticação com o Databricks mais centralizada e previsível. Ele permite que o senhor configure a autenticação do Databricks uma vez e, em seguida, use essa configuração em várias ferramentas e SDKs do Databricks sem outras alterações na configuração da autenticação.
Observação
A autenticação OAuth de usuário para máquina (U2M) é compatível com o Databricks SDK para Java 0.18.0 e acima. Talvez seja necessário atualizar a versão instalada do SDK da Databricks para Java do seu projeto de código para 0.18.0 ou acima para usar a autenticação OAuth U2M. Consulte Começar a usar o Databricks SDK para Java.
Para a autenticação OAuth U2M, o senhor deve usar a CLI da Databricks para se autenticar antes de executar o código Scala. Veja o tutorial.
A autenticação OAuth máquina a máquina (M2M) é compatível com o Databricks SDK para Java 0.17.0 e acima. Talvez seja necessário atualizar a versão instalada do SDK da Databricks para Java do seu projeto de código para 0.17.0 ou acima para usar a autenticação OAuth U2M. Consulte Começar a usar o Databricks SDK para Java.
A autenticação de credenciais do Google Cloud s e a autenticação de ID do Google Clouds são compatíveis com o Databricks SDK for Java 0.14.0 e superiores. Talvez seja necessário atualizar a versão instalada do SDK da Databricks para Java do seu projeto de código para 0.14.0 ou acima para usar a autenticação de credenciais do Google Clouds ou a autenticação de ID. Consulte Começar a usar o Databricks SDK para Java.
Colete as propriedades de configuração a seguir.
O nome da instância do espaço de trabalho do Databricks. É igual ao valor hostnamedo servidor para seus clusters; consulte Obter detalhes de conexão para um recurso de computação do Databricks.
O ID dos seus clusters. Você pode obter o ID clusters na URL. Consulte URL e IDclusters .
Quaisquer outras propriedades necessárias para o tipo de autenticação do Databricks compatível. 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 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
O método
remote()
da classeDatabricksSession
Somente autenticação access token pessoal do Databricks
Um perfil de configuração do Databricks
Todos os tipos de autenticação do Databricks
A variável de ambiente
SPARK_REMOTE
Somente autenticação access token pessoal do Databricks
A variável de ambiente
DATABRICKS_CONFIG_PROFILE
Todos os tipos de autenticação do Databricks
Uma variável de ambiente para cada propriedade de configuração
Todos os tipos de autenticação do Databricks
Um perfil de configuração do Databricks chamado
DEFAULT
Todos os tipos de autenticação do Databricks
O método
remote()
da classeDatabricksSession
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
eclusterId
emDatabricksSession.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()
Um perfil de configuração do Databricks
Para essa opção, crie ou identifique um perfil de configuração do Databricks que contenha o campo
cluster_id
e quaisquer outros campos necessários para o tipo de autenticação do Databricks suportado que o senhor deseja usar.Os campos de perfil de configuração obrigatórios para cada tipo de autenticação são os seguintes:
Para autenticação access token pessoal do Databricks:
host
etoken
.Para autenticação OAuth máquina a máquina (M2M) (quando compatível):
host
,client_id
eclient_secret
.Para autenticação usuário-máquina (U2M) OAuth (quando compatível):
host
.Para clouds autenticação de credenciais do Google (quando compatível):
host
egoogle_credentials
.Para clouds autenticação de ID do Google (quando compatível):
host
egoogle_service_acccount
.
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 camposcluster_id
ouclusterId
.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()
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.
A variável de ambiente
DATABRICKS_CONFIG_PROFILE
Para essa opção, crie ou identifique um perfil de configuração do Databricks que contenha o campo
cluster_id
e quaisquer outros campos necessários para o tipo de autenticação do Databricks suportado que o senhor 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 especificarcluster_id
.Os campos de perfil de configuração obrigatórios para cada tipo de autenticação são os seguintes:
Para autenticação access token pessoal do Databricks:
host
etoken
.Para autenticação OAuth máquina a máquina (M2M) (quando compatível):
host
,client_id
eclient_secret
.Para autenticação usuário-máquina (U2M) OAuth (quando compatível):
host
.Para clouds autenticação de credenciais do Google (quando compatível):
host
egoogle_credentials
.Para clouds autenticação de ID do Google (quando compatível):
host
egoogle_service_acccount
.
Defina a variável de ambiente
DATABRICKS_CONFIG_PROFILE
com o nome deste perfil de configuração. Em seguida, inicialize a classeDatabricksSession
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.
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:
Para autenticação access token pessoal do Databricks:
DATABRICKS_HOST
eDATABRICKS_TOKEN
.Para autenticação OAuth máquina a máquina (M2M) (quando compatível):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
,DATABRICKS_CLIENT_SECRET
.Para autenticação usuário-máquina (U2M) OAuth (quando compatível):
DATABRICKS_HOST
.Para clouds autenticação de credenciais do Google (quando compatível):
DATABRICKS_HOST
eGOOGLE_CREDENTIALS
.Para clouds autenticação de ID do Google (quando compatível):
DATABRICKS_HOST
eGOOGLE_SERVICE_ACCOUNT
.
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.
Um perfil de configuração do Databricks chamado
DEFAULT
Para essa opção, crie ou identifique um perfil de configuração do Databricks que contenha o campo
cluster_id
e quaisquer outros campos necessários para o tipo de autenticação do Databricks suportado que o senhor 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 especificarcluster_id
.Os campos de perfil de configuração obrigatórios para cada tipo de autenticação são os seguintes:
Para autenticação access token pessoal do Databricks:
host
etoken
.Para autenticação OAuth máquina a máquina (M2M) (quando compatível):
host
,client_id
eclient_secret
.Para autenticação usuário-máquina (U2M) OAuth (quando compatível):
host
.Para clouds autenticação de credenciais do Google (quando compatível):
host
egoogle_credentials
.Para clouds autenticação de ID do Google (quando compatível):
host
egoogle_service_acccount
.
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()