Partilhar via


Tutorial: Executar código Python em computação sem servidor

Observação

Este artigo aplica-se ao Databricks Connect 15.4 LTS e superior.

Este artigo descreve como criar um projeto em seu IDE, configurar seu ambiente virtual, instalar o Databricks Connect for Python e executar código em computação sem servidor em seu espaço de trabalho Databricks.

Este tutorial usa Python 3.12 e Databricks Connect 16.4 LTS. Para usar outras versões do Python do Databricks Connect, elas devem ser compatíveis. Consulte a matriz de suporte da versão.

Requerimentos

Para concluir este tutorial, os seguintes requisitos devem ser atendidos:

Etapa 1: Configurar a autenticação do Databricks

Este tutorial usa a autenticação de usuário para máquina (U2M) do Databricks OAuth e um perfil de configuração do Databricks para autenticação em seu espaço de trabalho do Databricks.

  1. Use a CLI do Databricks para iniciar o gerenciamento de token OAuth localmente executando o seguinte comando para cada espaço de trabalho de destino. No comando a seguir, substitua <workspace-url> pela URL da instância do espaço de trabalho Databricks, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com.

    databricks auth login --host <workspace-url>
    
  2. A CLI do Databricks solicita que você salve as informações inseridas como um perfil de configuração do Databricks. Pressione Enter para aceitar o nome de perfil sugerido ou digite o nome de um perfil novo ou existente. O Databricks recomenda usar DEFAULT como nome do seu perfil.

  3. No navegador da Web, conclua as instruções na tela para fazer login no espaço de trabalho do Databricks.

Etapa 2: Criar um novo ambiente virtual Python

  1. Crie a pasta do projeto e abra-a no IDE. Por exemplo, no menu principal do Visual Studio Code, clique em Arquivo>Abrir Pasta Abrir>

  2. Abra uma janela de terminal na raiz da pasta do projeto. Por exemplo, no menu principal do Visual Studio Code, clique em Exibir>Terminal.

  3. Crie um ambiente virtual para o projeto chamado venv na raiz da pasta do projeto executando o seguinte comando no terminal:

    python3.12 -m venv .venv
    
  4. Ative o seu ambiente virtual:

    # Linux/Mac
    source .venv/bin/activate
    
    # Windows
    .venv\Scripts\activate
    

Etapa 3: Instalar o Databricks Connect

Instale o Databricks Connect. Para obter informações sobre a versão mais recente do Databricks Connect 16.4, consulte Databricks Connect for Databricks Runtime 16.4.

pip install "databricks-connect==16.4.*"

Etapa 4: Adicionar código e executar

  1. Adicionar um novo arquivo main.py Python ao seu projeto

  2. Insira o seguinte código no arquivo, substituindo o espaço reservado <profile-name> pelo nome do seu perfil de configuração da Etapa 1 e salve o arquivo. O nome do perfil de configuração padrão é DEFAULT.

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
  3. Execute o código usando o seguinte comando:

    python3 main.py
    

    Cinco linhas da tabela são retornadas:

    +--------------------+---------------------+-------------+-----------+---------+-----------+
    |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    | 2016-02-16 22:40:45|  2016-02-16 22:59:25|         5.35|       18.5|     10003|      11238|
    | 2016-02-05 16:06:44|  2016-02-05 16:26:03|          6.5|       21.5|     10282|      10001|
    | 2016-02-08 07:39:25|  2016-02-08 07:44:14|          0.9|        5.5|     10119|      10003|
    | 2016-02-29 22:25:33|  2016-02-29 22:38:09|          3.5|       13.5|     10001|      11222|
    | 2016-02-03 17:21:02|  2016-02-03 17:23:24|          0.3|        3.5|     10028|      10028|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    

Você executou com êxito sua primeira consulta na computação sem servidor Databricks usando o Databricks Connect do seu IDE.

Etapa 5: Preparar o código para produção

Para cenários de produção, é importante evitar o uso de especificações de computação no construtor de sessões do Spark. Por exemplo, se você implantar seu código em um cluster clássico: Standard ou Dedicated usando a API no construtor de .serverless() sessões do Spark, uma nova sessão do Spark sem servidor será criada usando o cluster clássico como cliente.

Para tornar seu código flexível e pronto para produção, a sessão do Spark não deve conter nenhum parâmetro.

spark = DatabricksSession.builder.getOrCreate()

No entanto, quando esse código é executado em Databricks, a sessão global padrão do Spark da computação Databricks é usada.

Para habilitar a computação sem servidor em seu IDE, use o perfil de configuração DEFAULT, que é selecionado pelo DatabricksSession.builder quando nenhum parâmetro é especificado:

  1. Crie um perfil de configuração nomeado DEFAULT usando as instruções da etapa 1.

  2. Use um editor de texto para abrir o .databrickscfg arquivo, que se encontra em:

    • Sua $HOME pasta inicial do usuário em Unix, Linux ou macOS: ~/.databrickscfg, ou

    • A sua %USERPROFILE% pasta (a sua página inicial de utilizador) no Windows. Por exemplo, para macOS:

      nano ~/.databrickscfg
      
  3. Adicionar serverless_compute_id = auto ao DEFAULT perfil:

    [DEFAULT]
    host                  = https://my-workspace.cloud.databricks.com
    auth_type             = databricks-cli
    serverless_compute_id = auto
    
  4. Salve as alterações e saia do editor.

  5. Modifique seu código para usar uma sessão geral do Spark e execute-a:

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
    python3 main.py
    

Você executou seu código pronto para produção com êxito na computação sem servidor Databricks usando o Databricks Connect do seu IDE usando o perfil de configuração DEFAULT.

Sugestão

Você também pode usar variáveis de ambiente para definir a conexão para um cálculo específico do Databricks:

  • Sem servidor: DATABRICKS_SERVERLESS_COMPUTE_ID=auto
  • Clássico: DATABRICKS_CLUSTER_ID=<your_cluster_id>