tutorial: execução do código em serverless compute
Este artigo se aplica a Databricks Connect 15.4 LTS e acima.
Este artigo descreve como criar um projeto no seu IDE, configurar o seu ambiente virtual, instalar o Databricks Connect para Python e executar o código em serverless compute no seu Databricks workspace.
Este tutorial utiliza Python 3.12 e Databricks Connect 16.4 LTS. Para utilizar outras versões do Python do Databricks Connect, elas devem ser compatíveis. Veja a matriz de suporte à versão.
Requisitos
Para concluir este tutorial, é necessário que os seguintes requisitos sejam atendidos:
- Python 3.12 está instalado em sua máquina local.
- Seu workspace do Databricks de destino deve ter o Unity Catalog habilitado.
- Você tem um IDE instalado, como o Visual Studio Code.
- O ambiente local e o compute atendem aos requisitos de versão de instalação do Databricks Connect para Python.
- compute sem servidor está habilitado em seu workspace. Consulte Conecte-se a serverless compute .
- O Databricks CLI está instalado em sua máquina local. Consulte Instalar ou atualizar a CLI do Databricks.
Etapa 1: Configurar a autenticação do Databricks
Este tutorial utiliza Databricks OAuth autenticação usuário-para-máquina (U2M) e um perfil de configuração Databricks para autenticação no seu Databricks workspace.
-
Utilize o comando Databricks CLI para iniciar o gerenciamento de tokens OAuth localmente, executando o seguinte comando para cada workspace alvo. No comando a seguir, substitua
<workspace-url>
pelo Databricks workspace URL da sua instância do, porhttps://dbc-a1b2345c-d6e7.cloud.databricks.com
exemplo,.Bashdatabricks auth login --host <workspace-url>
-
O Databricks CLI solicita que você salve as informações inseridas como um perfil de configuração Databricks. Pressione
Enter
para aceitar o nome de perfil sugerido ou insira o nome de um perfil novo ou existente. A Databricks recomenda utilizar “DEFAULT
” como nome de perfil. -
No navegador da web, conclua as instruções na tela para fazer log in no workspace do Databricks.
Passo 2: Crie um novo ambiente virtual Python
-
Crie a pasta do seu projeto e abra-a no seu IDE. Por exemplo, no menu principal do Visual Studio Code, clique em Arquivo > Abrir pasta > Abrir
-
Abra uma janela de terminal na raiz da pasta do projeto. > Por exemplo, no menu principal do Visual Studio Code, clique em Exibir e selecione Terminal .
-
Crie um ambiente virtual para o projeto chamado “
venv
” na raiz da pasta do projeto, executando o seguinte comando no terminal:Bashpython3.12 -m venv .venv
-
Ative seu ambiente virtual:
Bash# Linux/Mac
source .venv/bin/activateBash# 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 para Databricks Runtime 16.4.
pip install "databricks-connect==16.4.*"
Passo 4: Adicione o código e execute
-
Adicione um novo arquivo Python, denominado “
main.py
”, ao seu projeto. -
Insira o código a seguir 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 do default éDEFAULT
.Pythonfrom databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()
df = spark.read.table("samples.nyctaxi.trips")
df.show(5) -
Execute o código utilizando o seguinte comando:
Bashpython3 main.py
Cinco linhas da tabela são retornadas:
Output+--------------------+---------------------+-------------+-----------+---------+-----------+
|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 sucesso sua primeira consulta em Databricks serverless compute utilizando Databricks Connect a partir do seu IDE.
Etapa 5: Prepare seu código para produção
Para cenários de produção, é importante evitar o uso de especificações compute no criador de sessões Spark. Por exemplo, se você implantou seu código em um clustering clássico: Standard
ou Dedicated
usando o .
serverless()
API em seu criador de sessões Spark, uma nova sessão serverless Spark é criada usando o clustering clássico como cliente.
Para tornar seu código flexível e pronto para produção, a sessão Spark não deve conter nenhum parâmetro.
spark = DatabricksSession.builder.getOrCreate()
No entanto, quando este código é executado em Databricks, a sessão global default Spark do Databricks compute é utilizada.
Para habilitar o serverless compute no seu IDE, utilize o perfil de configuração padrão, que é selecionado pelo DatabricksSession.builder
quando nenhum parâmetro é especificado:
-
Crie um perfil de configuração chamado
DEFAULT
usando as instruções da etapa 1. -
Use um editor de texto para abrir o arquivo
.databrickscfg
, que se encontra em:-
Sua pasta de usuário
$HOME
no Unix, Linux ou macOS:~/.databrickscfg
, ou -
Seu
%USERPROFILE%
(sua pasta de usuário em Windows. Por exemplo, para macOS:Bashnano ~/.databrickscfg
-
-
Adicione
serverless_compute_id = auto
ao perfilDEFAULT
:[DEFAULT]
host = https://my-workspace.cloud.databricks.com
auth_type = databricks-cli
serverless_compute_id = auto -
Salve as alterações e saia do editor.
-
Modifique seu código para utilizar uma sessão Spark geral e execute-o:
Pythonfrom databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
df = spark.read.table("samples.nyctaxi.trips")
df.show(5)Bashpython3 main.py
O código pronto para produção foi executado com sucesso em Databricks, serverless e compute utilizando Databricks Connect a partir do IDE com o perfil de configuração padrão.
Também é possível utilizar variáveis de ambiente para definir a conexão com um servidor específico, como Databricks compute:
- sem servidor:
DATABRICKS_SERVERLESS_COMPUTE_ID=auto
- Clássico:
DATABRICKS_CLUSTER_ID=<your_cluster_id>