Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Nota
Este artigo aborda o Databricks Connect para o Databricks Runtime 13.3 LTS e versões superiores.
Esta página descreve diferentes maneiras de configurar uma conexão entre o Databricks Connect e seu cluster do Azure Databricks ou computação sem servidor.
O Databricks Connect permite conectar IDEs populares, como Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, servidores de notebook e outros aplicativos personalizados a clusters do Azure Databricks. Consulte O que é Databricks Connect?.
Configurar
Antes de começar, você precisa do seguinte:
- Databricks Connect instalado. Para obter os requisitos de instalação, consulte Requisitos de uso do Databricks Connect.
- O nome da instância de espaço de trabalho do Azure Databricks. Este é o valor Server Hostname para sua computação. Consulte Obter detalhes de conexão para um recurso de computação do Azure Databricks.
- Se você estiver se conectando à computação clássica, a ID do cluster. Você pode obter o ID do cluster da URL. Consulte URL e ID do recurso de computação.
Configurar uma conexão com um cluster
Há várias maneiras de configurar a conexão com o cluster. O Databricks Connect procura propriedades de configuração na seguinte ordem e usa a primeira configuração encontrada. Para obter informações de configuração avançada, consulte Uso avançado do Databricks Connect.
- O método remote() da classe DatabricksSession.
- Um perfil de configuração do Databricks
- A variável de ambiente DATABRICKS_CONFIG_PROFILE
- Uma variável de ambiente para cada propriedade de configuração
- Um perfil de configuração do Databricks chamado DEFAULT
O DatabricksSession método da remote() classe
Para esta opção, que se aplica apenas a Autenticar com tokens de acesso pessoal (legado) 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 agrupamento.
Você pode inicializar a classe de DatabricksSession várias maneiras:
- Defina os campos
host,tokenecluster_idemDatabricksSession.builder.remote(). - Use a classe do SDK do Databricks
Config. - Especifique um perfil de configuração do Databricks junto com o
cluster_idcampo.
Em vez de especificar essas propriedades de conexão em seu código, 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ê forneça alguma implementação das funções de retrieve_* propostas para obter as propriedades necessárias do usuário ou de algum outro repositório de configuração, como Azure KeyVault.
O código para cada uma dessas abordagens é o seguinte:
Python
# Set the host, token, and cluster_id fields in DatabricksSession.builder.remote.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
).getOrCreate()
linguagem de programação Scala
// 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()
Python
# 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 cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
linguagem de programação Scala
// 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()
Python
# Specify a Databricks configuration profile along with the `cluster_id` 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 cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
linguagem de programação Scala
// 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 Azure Databricks contendo o campo cluster_id e quaisquer outros campos necessários para o tipo de autenticação Databricks que você deseja usar.
Os campos de perfil de configuração necessários para cada tipo de autenticação são os seguintes:
- Para a autenticação de token de acesso pessoal do Azure Databricks:
hostetoken. - Para autenticação OAuth máquina-a-máquina (M2M) (quando suportado):
host,client_ideclient_secret. - Para autenticação OAuth de utilizador para máquina (U2M) (quando suportado):
host. - Para a autenticação de entidade de serviço do Microsoft Entra ID (anteriormente Azure Active 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 geridas do Azure (quando suportado): ,
host,azure_use_msi, e possivelmenteazure_client_id.
Em seguida, defina o nome desse perfil de configuração por meio da classe de configuração.
Você pode especificar cluster_id de duas maneiras:
- Inclua o
cluster_idcampo 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
cluster_idcampo.
Se você já tiver definido a DATABRICKS_CLUSTER_ID variável de ambiente com a ID do cluster, também não precisará especificar cluster_id.
O código para cada uma dessas abordagens é o seguinte:
Python
# Include the cluster_id field in your configuration profile, and then
# just specify the configuration profile's name:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
linguagem de programação Scala
// 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()
Python
# Specify the configuration profile name along with the cluster_id field.
# In this example, retrieve_cluster_id() assumes some custom implementation that
# you provide to get the cluster ID from the user or from some other
# configuration store:
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
linguagem de programação Scala
// 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()
A DATABRICKS_CONFIG_PROFILE variável de ambiente
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 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á especificar cluster_id.
Os campos de perfil de configuração necessários para cada tipo de autenticação são os seguintes:
- Para a autenticação de token de acesso pessoal do Azure Databricks:
hostetoken. - Para autenticação OAuth máquina-a-máquina (M2M) (quando suportado):
host,client_ideclient_secret. - Para autenticação OAuth de utilizador para máquina (U2M) (quando suportado):
host. - Para a autenticação de entidade de serviço do Microsoft Entra ID (anteriormente Azure Active 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 geridas do Azure (quando suportado): ,
host,azure_use_msi, e possivelmenteazure_client_id.
Defina a variável de ambiente DATABRICKS_CONFIG_PROFILE para o nome desse perfil de configuração. Em seguida, inicialize a DatabricksSession classe:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
linguagem de programação Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Uma variável de ambiente para cada propriedade de configuração
Para essa 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 Databricks que você deseja usar.
As variáveis de ambiente necessárias para cada tipo de autenticação são as seguintes:
- Para a autenticação de token de acesso pessoal do Azure Databricks:
DATABRICKS_HOSTeDATABRICKS_TOKEN. - Para autenticação OAuth máquina-a-máquina (M2M) (quando suportado):
DATABRICKS_HOST,DATABRICKS_CLIENT_IDeDATABRICKS_CLIENT_SECRET. - Para autenticação OAuth de utilizador para máquina (U2M) (quando suportado):
DATABRICKS_HOST. - Para a autenticação de entidade de serviço do Microsoft Entra ID (anteriormente Azure Active 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 geridas do Azure (quando suportado): ,
DATABRICKS_HOST,ARM_USE_MSI, e possivelmenteARM_CLIENT_ID.
Em seguida, inicialize a DatabricksSession classe:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
linguagem de programação Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Um perfil de configuração do 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 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á especificar cluster_id.
Os campos de perfil de configuração necessários para cada tipo de autenticação são os seguintes:
- Para a autenticação de token de acesso pessoal do Azure Databricks:
hostetoken. - Para autenticação OAuth máquina-a-máquina (M2M) (quando suportado):
host,client_ideclient_secret. - Para autenticação OAuth de utilizador para máquina (U2M) (quando suportado):
host. - Para a autenticação de entidade de serviço do Microsoft Entra ID (anteriormente Azure Active 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 geridas do Azure (quando suportado): ,
host,azure_use_msi, e possivelmenteazure_client_id.
Nomeie este perfil DEFAULTde configuração .
Em seguida, inicialize a DatabricksSession classe:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
linguagem de programação Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Configurar uma conexão com computação sem servidor
Importante
Esta funcionalidade está em Pré-visualização Pública.
O Databricks Connect for Python e o Scala suportam a conexão à computação sem servidor. Para usar este recurso, os requisitos de versão para a ligação ao sem servidor devem estar cumpridos. Consulte Requisitos de uso do Databricks Connect.
Importante
Este recurso tem as seguintes limitações:
- Este recurso só é suportado no Databricks Connect for Python.
- As versões Python, Scala e Databricks Connect devem ser compatíveis. Consulte Versões do Databricks Connect.
- Todas as limitações do Databricks Connect for Python ou Databricks Connect for Scala.
- Todas as limitações de computação sem servidor
- Somente dependências Python incluídas como parte do ambiente de computação sem servidor podem ser usadas para UDFs. Consulte versões de ambiente sem servidor. Não é possível instalar dependências adicionais.
- UDFs com módulos personalizados não são suportados.
Para Python, você pode configurar uma conexão com computação sem servidor em seu ambiente local:
Defina a variável de ambiente local
DATABRICKS_SERVERLESS_COMPUTE_IDcomoauto. Se essa variável de ambiente estiver definida, o Databricks Connect ignorará ocluster_id.Em um perfil de configuração localdo Databricks
, defina e, em seguida, faça referência a esse perfil a partir do seu código. [DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...Ou para Python ou Scala, use uma das seguintes opções:
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless(True).getOrCreate()
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()
linguagem de programação Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.remote().getOrCreate()
Nota
A sessão de computação sem servidor expira após 10 minutos de inatividade. Depois disso, uma nova sessão do Spark deve ser criada usando getOrCreate() para se conectar à computação sem servidor.
Validar a conexão com o Databricks
Para validar se seu ambiente, credenciais padrão e conexão com computação estão configurados corretamente para o Databricks Connect, execute o databricks-connect test comando:
databricks-connect test
Este comando falha com um código de saída diferente de zero e uma mensagem de erro correspondente quando deteta qualquer incompatibilidade na configuração, como quando a versão Databricks Connect é incompatível com a versão de computação sem servidor Databricks. Para obter informações de suporte à versão do Databricks Connect, consulte Versões do Databricks Connect.
No Databricks Connect 14.3 e superior, você também pode validar seu ambiente usando validateSession():
DatabricksSession.builder.validateSession(True).getOrCreate()
Desativar Databricks Connect
Os serviços Databricks Connect (e o Spark Connect subjacente) podem ser desativados em qualquer cluster.
Para desativar o serviço Databricks Connect, defina a seguinte configuração do Spark: no cluster.
spark.databricks.service.server.enabled false