Compartilhar via


Instalar o Databricks Connect para Python

Observação

Esse artigo aborda o Databricks Connect para Databricks Runtime 13.3 LTS e superior.

Esse artigo descreve como instalar o Databricks Connect para Python. Consulte O que é o Databricks Connect?. Para obter a versão para Scala deste artigo, consulte Instalar o Databricks Connect para Scala.

Requisitos

Para instalar o Databricks Connect para Python, os seguintes requisitos devem ser atendidos:

  • Se você estiver se conectando à computação sem servidor, seu workspace deverá atender aos requisitos para computação sem servidor.

  • Se você estiver se conectando a um cluster, seu cluster de destino deverá atender aos requisitos de configuração do cluster, que inclui os requisitos de versão do Databricks Runtime.

  • Você deve ter o Python 3 instalado em seu computador de desenvolvimento e a versão secundária do Python instalada em seu computador deve atender aos requisitos de versão na tabela abaixo.

    Versão do Databricks Connect Tipo de computação Versão compatível do Python
    15.1 Cluster 3.11
    15.1 Sem servidor 3.10
    13.3 LTS a 14.3 LTS Cluster 3.10
  • Se você quiser usar UDFs do PySpark, a versão secundária do Python instalada no computador de desenvolvimento deve corresponder à versão secundária do Python incluída no Databricks Runtime instalado no cluster ou computação sem servidor. Para localizar a versão secundária do Python do seu cluster, consulte a seção Ambiente do sistema das notas sobre a versão do Databricks Runtime para seu cluster ou computação sem servidor. Consulte Versões e compatibilidade das notas sobre a versão do Databricks Runtime e Notas sobre a versão da computação sem servidor.

Ativar um ambiente virtual do Python

O Databricks recomenda que você tenha um ambiente virtual Python ativado para cada versão do Python que você usa com o Databricks Connect. Os ambientes virtuais Python ajudam a garantir o uso das versões corretas do Python e do Databricks Connect em conjunto. Para obter mais informações sobre essas ferramentas e como ativá-las, consulte venv ou Poetry.

Instalar o cliente do Databricks Connect

Esta seção descreve como instalar o cliente do Databricks Connect com venv ou Poetry.

Observação

Se você já tiver a extensão do Databricks para o Visual Studio Code instalada, não precisará seguir essas instruções de instalação, pois a extensão do Databricks para Visual Studio Code já tem suporte interno para Databricks Connect para Databricks Runtime 13.3 LTS e superior. Pule para Depurar código usando o Databricks Connect para a extensão do Databricks para Visual Studio Code.

Instale o cliente do Databricks Connect com venv

  1. Com o ambiente virtual ativado, desinstale o PySpark, se ele já estiver instalado, executando o comando uninstall. Isso é necessário porque o pacote databricks-connect está em conflito com o PySpark. Para obter detalhes, confira Instalações conflitantes do PySpark. Para verificar se o PySpark já está instalado, execute o comando show.

    # Is PySpark already installed?
    pip3 show pyspark
    
    # Uninstall PySpark
    pip3 uninstall pyspark
    
  2. Com o ambiente virtual ainda ativado, instale o cliente do Databricks Connect executando o comando install. Use a opção --upgrade para atualizar qualquer instalação do cliente existente para a versão especificada.

    pip3 install --upgrade "databricks-connect==14.3.*"  # Or X.Y.* to match your cluster version.
    

    Observação

    O Databricks recomenda que você acrescente a notação "dot-asterisk" a ser especificada databricks-connect==X.Y.* em vez de databricks-connect=X.Y, para garantir que o pacote mais recente esteja instalado. Embora não seja um requisito, isso ajudará a garantir que você possa usar os recursos mais recentes com suporte para esse cluster.

Pule para Configurar as propriedades da conexão.

Instale o cliente do Databricks Connect com Poesia

  1. Com o ambiente virtual ativado, desinstale o PySpark, se ele já estiver instalado, executando o comando remove. Isso é necessário porque o pacote databricks-connect está em conflito com o PySpark. Para obter detalhes, confira Instalações conflitantes do PySpark. Para verificar se o PySpark já está instalado, execute o comando show.

    # Is PySpark already installed?
    poetry show pyspark
    
    # Uninstall PySpark
    poetry remove pyspark
    
  2. Com o ambiente virtual ainda ativado, instale o cliente do Databricks Connect executando o comando add.

    poetry add databricks-connect@~14.3  # Or X.Y to match your cluster version.
    

    Observação

    O Databricks recomenda que você use a notação "at-tilde" a ser especificada databricks-connect@~14.3 em vez de databricks-connect==14.3, para garantir que o pacote mais recente esteja instalado. Embora não seja um requisito, isso ajudará a garantir que você possa usar os recursos mais recentes com suporte para esse cluster.

Configurar as propriedades da conexão

Nesta seção, você configurará propriedades para estabelecer uma conexão entre o Databricks Connect e o cluster ou computação sem servidor do Azure Databricks, que inclui o seguinte:

Observação

Configurar uma conexão com um cluster

Para configurar uma conexão com um cluster, você precisará da ID do cluster. Obtenha a ID do cluster na URL. Confira a URL e ID do cluster.

Você pode configurar a conexão com o cluster de uma das seguintes maneiras. O Databricks Connect pesquisa propriedades de configuração na ordem a seguir e usa a primeira configuração encontrada. Para obter informações de configuração avançada, 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 do Databricks chamado DEFAULT

O método remote() da classe DatabricksSession

Para essa opção, que se aplica somente à autenticação de token de acesso pessoal do Azure Databricks, especifique o nome da instância do workspace, o token de acesso pessoal do Azure Databricks e a ID do cluster.

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

  • Defina os campos host, token e cluster_id em DatabricksSession.builder.remote().
  • Use a classe Config do SDK do Databricks.
  • Especifique um perfil de configuração do Databricks junto com o campo cluster_id.
  • Definir a cadeia de conexão do Spark Connect em DatabricksSession.builder.remote().

Em vez de especificar essas propriedades de conexão em seu código, o 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 você forneça alguma implementação das funções retrieve_* propostas para obter as propriedades necessárias do usuário ou de algum outro repositório de configurações, como o Azure KeyVault.

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()
# 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()
# 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()

Um perfil de configuração do Databricks

Para essa opção, crie ou identifique um perfil de configuração do Azure Databricks que contém o campo cluster_id e quaisquer outros campos necessários para o tipo de autenticação do Databricks que você deseja usar.

Os campos de perfil de configuração necessá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 Config.

Você pode especificar cluster_id de algumas maneiras, conforme a seguir:

  • Inclua o campo cluster_id em 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 junto com o campo cluster_id.

Se você já tiver definido a variável de ambiente DATABRICKS_CLUSTER_ID com a 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()
# 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()

A variável de ambiente DATABRICKS_CONFIG_PROFILE

Para essa opção, crie ou identifique um perfil de configuração do Azure Databricks que contém o campo cluster_id e quaisquer outros campos necessários para o tipo de autenticação do Databricks que você deseja usar.

Se você já tiver definido a variável de ambiente DATABRICKS_CLUSTER_ID com a 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:

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

from databricks.connect import DatabricksSession

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 do Databricks 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:

from databricks.connect import DatabricksSession

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 que contém o campo cluster_id e quaisquer outros campos necessários para o tipo de autenticação do Databricks que você deseja usar.

Se você já tiver definido a variável de ambiente DATABRICKS_CLUSTER_ID com a 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:

Nomeie esse perfil de configuração DEFAULT.

Em seguida, inicialize a classe DatabricksSession da seguinte maneira:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

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

Importante

Esse recurso está em uma versão prévia.

O Databricks Connect dá suporte à conexão com a computação sem servidor. Para usar esse recurso, os requisitos para se conectar à computação sem servidor devem ser atendidos. Confira os Requisitos

Importante

Este recurso tem as seguintes limitações:

Você pode configurar uma conexão com a computação sem servidor de uma das seguintes maneiras:

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

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

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...
    
  • Como alternativa, basta atualizar o código Python do Databricks Connect da seguinte maneira:

    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 de computação sem servidor atinge o tempo limite após 10 minutos de inatividade. Depois disso, o processo do Python precisa ser reiniciado no lado do cliente para criar uma nova sessão do Spark para se conectar à computação sem servidor.

Validar a conexão com o Databricks

Para validar se o seu ambiente, as credenciais padrão e a conexão com a computação estão configurados 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 incompatibilidade na instalação.

databricks-connect test

Como alternativa, use o shell pyspark incluído como parte do Databricks Connect para Python e execute um comando simples. Para obter mais detalhes sobre o shell do PySpark, consulte Shell do PySpark.