Configuração de computação para o Databricks Connect

Observação

Este artigo abrange Databricks Connect para Databricks Runtime 13.3 LTS e acima.

Neste artigo, o senhor configura as propriedades para estabelecer uma conexão entre Databricks Connect e seu Databricks cluster ou serverless compute. Estas informações se aplicam às versões Python e Scala do site Databricks Connect, salvo indicação em contrário.

O Databricks Connect permite conectar IDEs populares, como Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, servidores Notebook e outros aplicativos personalizados a clusters Databricks. Consulte O que é o Databricks Connect?.

Requisitos

Para configurar uma conexão com Databricks compute, o senhor deve ter:

Configuração

Antes de começar, você precisa do seguinte:

Observação

Configurar uma conexão com um cluster

Há várias maneiras de configurar a conexão com seu cluster. O Databricks Connect procura as propriedades de configuração na seguinte ordem e usa a primeira configuração que encontrar. Para obter informações sobre configurações avançadas, consulte Uso avançado do Databricks Connect para Python.

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

  2. Um perfil de configuração do Databricks

  3. A variável de ambiente DATABRICKS_CONFIG_PROFILE

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

  5. Um perfil de configuração Databricks denominado default

O método remote() da classe DatabricksSession

Para essa opção, que se aplica somente à autenticaçãoDatabricks personal access token , especifique o nome da instância workspace, o Databricks personal access token e o ID do cluster.

Você pode inicializar a classe DatabricksSession de várias maneiras:

  • Defina os campos host, token e cluster_id em DatabricksSession.builder.remote().

  • Use a classe Config do SDK da Databricks.

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

Em vez de especificar essas propriedades de conexão no código, o site Databricks recomenda configurar as propriedades por meio de variáveis de ambiente ou arquivos de configuração, conforme descrito ao longo desta seção. Os exemplos de código a seguir pressupõem que o senhor forneça alguma implementação das funções propostas em retrieve_* para obter as propriedades necessárias do usuário ou de algum outro armazenamento de configuração, como o AWS Systems Manager Parameter Store.

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

# 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()
// 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 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()
// 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 `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()
// 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 que sejam necessários para o tipo de autenticação do Databricks que o senhor deseja usar.

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

Observação

A autenticação básica usando um nome de usuário e senha do Databricks chegou ao fim da vida útil em 10 de julho de 2024. Consulte Fim da vida útil das senhas gerenciadas pelo Databricks.

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

Observação

O senhor pode usar a opção --configure-cluster do comando auth login para adicionar automaticamente o campo cluster_id a um perfil de configuração novo ou existente. Para obter mais informações, execute o comando databricks auth login -h.

Você pode especificar cluster_id de duas maneiras:

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

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

Se o senhor já tiver definido a variável de ambiente DATABRICKS_CLUSTER_ID com o ID do cluster, não precisará especificar também cluster_id.

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:
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
// 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 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()
// 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 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 que sejam necessários para o tipo de autenticação do Databricks que o senhor deseja usar.

Se o senhor já tiver definido a variável de ambiente DATABRICKS_CLUSTER_ID com o ID do cluster, não precisará especificar também cluster_id.

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

Observação

A autenticação básica usando um nome de usuário e senha do Databricks chegou ao fim da vida útil em 10 de julho de 2024. Consulte Fim da vida útil das senhas gerenciadas pelo Databricks.

Observação

O senhor pode usar o --configure-cluster do comando auth login para adicionar automaticamente o campo cluster_id a um perfil de configuração novo ou existente. Para obter mais informações, execute o comando databricks auth login -h.

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

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()
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 qualquer outra variável de ambiente que seja necessária para o tipo de autenticaçãoDatabricks que o senhor deseja usar.

A variável de ambiente necessária para cada tipo de autenticação é a seguinte:

Observação

A autenticação básica usando um nome de usuário e senha do Databricks chegou ao fim da vida útil em 10 de julho de 2024. Consulte Fim da vida útil das senhas gerenciadas pelo Databricks.

Em seguida, inicialize a classe DatabricksSession:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()
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 Databricks que contenha o campo cluster_id e quaisquer outros campos que sejam necessários para o tipo de autenticação do Databricks que o senhor deseja usar.

Se o senhor já tiver definido a variável de ambiente DATABRICKS_CLUSTER_ID com o ID do cluster, não precisará especificar também cluster_id.

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

Observação

A autenticação básica usando um nome de usuário e senha do Databricks chegou ao fim da vida útil em 10 de julho de 2024. Consulte Fim da vida útil das senhas gerenciadas pelo Databricks.

Nomeie esse perfil de configuração como DEFAULT.

Observação

O senhor pode usar a opção --configure-cluster do comando auth login para adicionar automaticamente o campo cluster_id ao perfil de configuração DEFAULT. Para obter mais informações, execute o comando databricks auth login -h.

Em seguida, inicialize a classe DatabricksSession:

from databricks.connect import DatabricksSession

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

val spark = DatabricksSession.builder().getOrCreate()

Configurar uma conexão com a computação sem servidor

Prévia

Esse recurso está em Pré-lançamento público.

Databricks Connect para Python suporta a conexão com serverless compute. Para usar esse recurso, é necessário atender aos requisitos de conexão com o serverless. Consulte os requisitos.

Importante

Esse recurso tem as seguintes limitações:

O senhor pode configurar uma conexão com serverless compute de uma das seguintes maneiras:

  • Defina a variável de ambiente local DATABRICKS_SERVERLESS_COMPUTE_ID como auto. Se essa variável de ambiente for definida, o Databricks Connect ignorará o endereço cluster_id.

  • Em um perfil de configuração local do Databricks, defina serverless_compute_id = auto e, em seguida, faça referência a esse perfil em seu código.

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...
    
  • Ou use uma das seguintes opções:

from databricks.connect import DatabricksSession as SparkSession

spark = DatabricksSession.builder.serverless(True).getOrCreate()
from databricks.connect import DatabricksSession as SparkSession

spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()

Observação

A sessão serverless compute é encerrada após 10 minutos de inatividade. Depois disso, uma nova sessão Spark deve ser criada usando getOrCreate() para se conectar a serverless compute.

Validar a conexão com o Databricks

Para validar seu ambiente, as credenciais do default e a conexão com o compute estão configuradas corretamente para o Databricks Connect, execute o comando databricks-connect test, que falha com um código de saída diferente de zero e uma mensagem de erro correspondente quando detecta qualquer incompatibilidade na configuração.

databricks-connect test

Em Databricks Connect 14.3 e acima, o senhor também pode validar seu ambiente usando validateSession():

DatabricksSession.builder.validateSession(True).getOrCreate()

Desativando o Databricks Connect

O serviço Databricks Connect (e o Spark Connect subjacente) pode ser desabilitado em qualquer clusters.

Para desativar o serviço Databricks Connect, defina a seguinte configuração do Spark nos clusters.

spark.databricks.service.server.enabled false