Partilhar via


Desenvolver um arquivo de roda Python usando Databricks Asset Bundles

Este artigo descreve como criar, implantar e executar um arquivo de roda Python como parte de um projeto Databricks Asset Bundle . Consulte O que são Databricks Asset Bundles?

Requisitos

  • Databricks CLI versão 0.218.0 ou superior. Para verificar a versão instalada da CLI do Databricks, execute o comando databricks -v. Para instalar a CLI do Databricks, consulte Instalar ou atualizar a CLI do Databricks.
  • O espaço de trabalho remoto deve ter arquivos de espaço de trabalho habilitados. Consulte O que são arquivos de espaço de trabalho?.

Decisão: Crie o pacote manualmente ou usando um modelo

Decida se deseja criar um pacote inicial usando um modelo ou criar o pacote manualmente. Criar o pacote usando um modelo é mais rápido e fácil, mas o pacote pode produzir conteúdo que não é necessário, e as configurações padrão do pacote devem ser ainda mais personalizadas para aplicativos reais. Criar o pacote manualmente lhe dá controle total sobre as configurações do pacote, mas você deve estar familiarizado com como os pacotes funcionam, pois você está fazendo todo o trabalho desde o início. Escolha um dos seguintes conjuntos de etapas:

Criar o pacote usando um modelo

Nestas etapas, você cria o pacote usando o modelo de pacote padrão do Azure Databricks para Python. Estas etapas orientam você a criar um pacote que consiste em arquivos para compilar em um arquivo de roda Python e a definição de um trabalho do Azure Databricks para criar esse arquivo de roda Python. Em seguida, você valida, implanta e cria os arquivos implantados em um arquivo de roda Python a partir do trabalho de roda Python em seu espaço de trabalho do Azure Databricks.

O modelo de pacote padrão do Azure Databricks para Python usa setuptools para criar o arquivo de roda do Python. Se você quiser usar o Poetry para construir o arquivo de roda do Python em vez disso, siga as instruções mais adiante nesta seção para trocar a setuptools implementação por uma implementação do Poetry.

Etapa 1: configurar a autenticação

Nesta etapa, você configura a autenticação entre a CLI do Databricks em sua máquina de desenvolvimento e seu espaço de trabalho do Azure Databricks. Este artigo pressupõe que você deseja usar a autenticação de usuário para máquina (U2M) OAuth e um perfil de configuração do Azure Databricks correspondente nomeado DEFAULT para autenticação.

Nota

A autenticação U2M é apropriada para experimentar essas etapas em tempo real. Para fluxos de trabalho totalmente automatizados, o Databricks recomenda que você use a autenticação OAuth máquina-a-máquina (M2M). Consulte as instruções de configuração da autenticação M2M em Autenticação.

  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 do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net.

    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 Azure Databricks. Pressione Enter para aceitar o nome de perfil sugerido ou digite o nome de um perfil novo ou existente. Qualquer perfil existente com o mesmo nome é substituído pelas informações que você inseriu. Você pode usar perfis para alternar rapidamente seu contexto de autenticação em vários espaços de trabalho.

    Para obter uma lista de quaisquer perfis existentes, em um terminal ou prompt de comando separado, use a CLI do Databricks para executar o comando databricks auth profiles. Para visualizar as configurações existentes de um perfil específico, execute o comando databricks auth env --profile <profile-name>.

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

  4. Para exibir o valor atual do token OAuth de um perfil e o carimbo de data/hora de expiração do token, execute um dos seguintes comandos:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Se você tiver vários perfis com o mesmo --host valor, talvez seja necessário especificar as --host opções e -p juntas para ajudar a CLI do Databricks a encontrar as informações corretas do token OAuth.

Etapa 2: Criar o pacote

Um pacote contém os artefatos que você deseja implantar e as configurações para os fluxos de trabalho que deseja executar.

  1. Use seu terminal ou prompt de comando para alternar para um diretório em sua máquina de desenvolvimento local que conterá o pacote gerado pelo modelo.

  2. Use a versão da CLI do Dataricks para executar o bundle init comando:

    databricks bundle init
    
  3. Para Template to use, deixe o valor padrão de default-python pressionando Enter.

  4. Para Unique name for this project, deixe o valor padrão de my_project, ou digite um valor diferente e pressione Enter. Isso determina o nome do diretório raiz para este pacote. Este diretório raiz é criado dentro do seu diretório de trabalho atual.

  5. Para Include a stub (sample) notebook, selecione no e pressione Enter. Isso instrui a CLI do Databricks a não adicionar um bloco de anotações de exemplo ao seu pacote.

  6. Para Include a stub (sample) DLT pipeline, selecione no e pressione Enter. Isso instrui a CLI do Databricks a não definir um pipeline Delta Live Tables de exemplo em seu pacote.

  7. Para Include a stub (sample) Python package, deixe o valor padrão de yes pressionando Enter. Isso instrui a CLI do Databricks a adicionar arquivos de pacote de roda Python de exemplo e instruções de compilação relacionadas ao seu pacote.

Passo 3: Explore o pacote

Para exibir os arquivos que o modelo gerou, alterne para o diretório raiz do pacote recém-criado e abra esse diretório com seu IDE preferido, por exemplo, Visual Studio Code. Os ficheiros de particular interesse incluem o seguinte:

  • databricks.yml: Este arquivo especifica o nome programático do pacote, inclui uma referência à definição de tarefa de roda Python e especifica configurações sobre o espaço de trabalho de destino.
  • resources/<project-name>_job.yml: Este arquivo especifica as configurações do trabalho de roda do Python.
  • src/<project-name>: Este diretório inclui os arquivos que o trabalho de roda Python usa para construir o arquivo de roda Python.

Nota

Se desejar instalar o arquivo de roda Python em um cluster de destino que tenha o Databricks Runtime 12.2 LTS ou inferior instalado, você deve adicionar o seguinte mapeamento de nível superior ao databricks.yml arquivo:

# Applies to all tasks of type python_wheel_task.
experimental:
  python_wheel_wrapper: true

Esse mapeamento instrui a CLI do Databricks a fazer o seguinte:

  • Implemente uma cópia do arquivo de roda Python em segundo plano. Esse caminho de implantação normalmente é ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
  • Crie um bloco de anotações em segundo plano que contenha instruções para instalar o arquivo de roda Python implantado anteriormente no cluster de destino. O caminho deste bloco de anotações é normalmente ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>.
  • Quando você executa um trabalho que contém uma tarefa de roda Python e que as tarefas fazem referência ao arquivo de roda Python anterior, um trabalho é criado em segundo plano que executa o bloco de anotações anterior.

Não é necessário especificar esse mapeamento para clusters de destino com o Databricks Runtime 13.1 ou superior instalado, pois as instalações de roda Python do sistema de arquivos do espaço de trabalho do Azure Databricks serão instaladas automaticamente nesses clusters de destino.

Passo 4: Atualize o pacote do projeto para usar o Poetry

Por padrão, o modelo de pacote especifica a criação do arquivo de roda Python usando setuptools junto com os arquivos setup.py e requirements-dev.txt. Se você quiser manter esses padrões, pule para a Etapa 5: Validar o arquivo de configuração do pacote do projeto.

Para atualizar o pacote do projeto para usar o Poetry em vez do , certifique-se de que sua máquina de setuptoolsdesenvolvimento local atenda aos seguintes requisitos:

  • Poesia versão 1.6 ou superior. Para verificar a versão instalada do Poetry, execute o comando poetry -V ou poetry --version. Para instalar ou atualizar o Poetry, consulte Instalação.
  • Python versão 3.10 ou superior. Para verificar sua versão do Python, execute o comando python -V ou python --version.
  • Databricks CLI versão 0.209.0 ou superior. Para a sua versão da CLI do Databricks, execute o comando databricks -v ou databricks --version. Consulte Instalar ou atualizar a CLI do Databricks.

Faça as seguintes alterações no pacote do projeto:

  1. No diretório raiz do pacote, instrua poetry a inicializar as compilações da roda Python para Poetry, executando o seguinte comando:

    poetry init
    
  2. Poesia exibe vários prompts para você completar. Para as compilações de roda Python, responda a esses prompts da seguinte maneira para corresponder às configurações padrão relacionadas no pacote do projeto:

    1. Para Package name, digite o nome da pasta filho em /srce pressione Enter. Esse também deve ser o valor do name pacote definido no arquivo do setup.py pacote.
    2. Para Version, digite 0.0.1 e pressione Enter. Isso corresponde ao número da versão definido no arquivo do src/<project-name>/__init__.py pacote.
    3. Para Description, digite wheel file based on <project-name>/src (substituindo <project-name> pelo nome do projeto) e pressione Enter. Isso corresponde ao description valor definido no arquivo do setup.py modelo.
    4. Para Author, pressione Enter. Esse valor padrão corresponde ao autor definido no arquivo do setup.py modelo.
    5. Para License, pressione Enter. Não há nenhuma licença definida no modelo.
    6. Para Compatible Python versions, insira a versão do Python que corresponde à dos clusters do Azure Databricks de destino (por exemplo, ^3.10) e pressione Enter.
    7. Para Would you like to define your main dependencies interactively? Digite no e pressione Enter. Você definirá suas dependências mais tarde.
    8. Para Would you like to define your development dependencies interactively? Digite no e pressione Enter. Você definirá suas dependências mais tarde.
    9. Para Do you confirm generation? a imprensa Enter.
  3. Depois de concluir os prompts, o Poetry adiciona um pyproject.toml arquivo ao projeto do pacote. Para obter informações sobre o pyproject.toml arquivo, consulte O arquivo pyproject.toml.

  4. No diretório raiz do pacote, instrua poetry a ler o pyproject.toml arquivo, resolver as dependências e instalá-las, criar um poetry.lock arquivo para bloquear as dependências e, finalmente, criar um ambiente virtual. Para tal, execute o seguinte comando:

    poetry install
    
  5. Adicione a seguinte seção no final do pyproject.toml arquivo, substituindo <project-name> pelo nome do diretório que contém o src/<project-name>/main.py arquivo (por exemplo, my_project):

    [tool.poetry.scripts]
    main = "<project-name>.main:main"
    

    A seção especifica o ponto de entrada da roda Python para o trabalho da roda Python.

  6. Adicione o seguinte mapeamento no nível superior do arquivo do databricks.yml pacote:

    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    

    Esse mapeamento instrui a CLI do Databricks a usar o Poetry para construir um arquivo de roda Python.

  7. Exclua os setup.py arquivos e requirements-dev.txt do pacote, pois o Poetry não precisa deles.

Etapa 5: Validar o arquivo de configuração do pacote do projeto

Nesta etapa, você verifica se a configuração do pacote é válida.

  1. No diretório raiz, use a CLI do Databricks para executar o bundle validate comando, da seguinte maneira:

    databricks bundle validate
    
  2. Se um resumo da configuração do pacote for retornado, a validação será bem-sucedida. Se algum erro for retornado, corrija-os e repita esta etapa.

Se você fizer alguma alteração no pacote após esta etapa, repita esta etapa para verificar se a configuração do pacote ainda é válida.

Etapa 6: Criar o arquivo de roda Python e implantar o projeto local no espaço de trabalho remoto

Nesta etapa, você cria o arquivo de roda Python, implanta o arquivo de roda Python criado em seu espaço de trabalho remoto do Azure Databricks e cria o trabalho do Azure Databricks em seu espaço de trabalho.

  1. Se você usar setuptoolso , instale os wheel pacotes e setuptools se ainda não tiver feito isso, executando o seguinte comando:

    pip3 install --upgrade wheel setuptools
    
  2. No terminal do Visual Studio Code, use a CLI do Databricks para executar o bundle deploy comando da seguinte maneira:

    databricks bundle deploy -t dev
    
  3. Se você quiser verificar se o arquivo de roda Python construído localmente foi implantado:

    1. Na barra lateral do seu espaço de trabalho do Azure Databricks, clique em Espaço de trabalho.
    2. Clique na seguinte pasta: Workspace > Users<your-username>>>.bundle ><project-name>> dev > artifacts > .internal .><random-guid>

    O arquivo de roda Python deve estar nesta pasta.

  4. Se você quiser verificar se o trabalho foi criado:

    1. Na barra lateral do seu espaço de trabalho do Azure Databricks, clique em Fluxos de trabalho.
    2. Na guia Trabalhos, clique em [dev <your-username>] <project-name>_job.
    3. Clique na guia Tarefas .

    Deve haver uma tarefa: main_task.

Se você fizer alterações no pacote após esta etapa, repita as etapas 5 a 6 para verificar se a configuração do pacote ainda é válida e, em seguida, reimplantar o projeto.

Etapa 7: Executar o projeto implantado

Nesta etapa, você executa o trabalho do Azure Databricks em seu espaço de trabalho.

  1. No diretório raiz, use a CLI do Databricks para executar o bundle run comando, da seguinte forma, substituindo <project-name> pelo nome do seu projeto da Etapa 2:

    databricks bundle run -t dev <project-name>_job
    
  2. Copie o valor que aparece em seu terminal e cole esse valor em seu navegador da Web para abrir seu espaço de Run URL trabalho do Azure Databricks.

  3. No seu espaço de trabalho do Azure Databricks, depois que a tarefa for concluída com êxito e mostrar uma barra de título verde, clique na tarefa main_task para ver os resultados.

Se você fizer alterações no pacote após esta etapa, repita as etapas 5 a 7 para verificar se a configuração do pacote ainda é válida, reimplantar o projeto e executar o projeto reimplantado.

Você chegou ao final das etapas para criar um pacote usando um modelo.

Criar o pacote manualmente

Nestas etapas, você cria o pacote desde o início manualmente. Estas etapas guiam você para criar um pacote que consiste em arquivos para construir em um arquivo de roda Python e a definição de um trabalho Databricks para construir esse arquivo de roda Python. Em seguida, você valida, implanta e constrói os arquivos implantados em um arquivo de roda Python a partir do trabalho de roda Python em seu espaço de trabalho Databricks.

Essas etapas incluem a adição de conteúdo a um arquivo YAML. Opcionalmente, convém usar um ambiente de desenvolvimento integrado (IDE) que forneça sugestões e ações automáticas de esquema ao trabalhar com arquivos YAML. As etapas a seguir usam o Visual Studio Code com a extensão YAML instalada a partir do Visual Studio Code Marketplace.

Estas etapas pressupõem que você já saiba:

Siga estas instruções para criar um pacote de exemplo que cria um arquivo de roda Python com Poetry ou , implanta setuptoolso arquivo de roda Python e, em seguida, executa o arquivo de roda Python implantado.

Se você já construiu um arquivo de roda Python e deseja apenas implantá-lo e executá-lo, pule para especificar as configurações de roda Python no arquivo de configuração do pacote na Etapa 3: Criar o arquivo de configuração do pacote.

Etapa 1: configurar a autenticação

Nesta etapa, você configura a autenticação entre a CLI do Databricks em sua máquina de desenvolvimento e seu espaço de trabalho do Azure Databricks. Este artigo pressupõe que você deseja usar a autenticação de usuário para máquina (U2M) OAuth e um perfil de configuração do Azure Databricks correspondente nomeado DEFAULT para autenticação.

Nota

A autenticação U2M é apropriada para experimentar essas etapas em tempo real. Para fluxos de trabalho totalmente automatizados, o Databricks recomenda que você use a autenticação OAuth máquina-a-máquina (M2M). Consulte as instruções de configuração da autenticação M2M em Autenticação.

  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 do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net.

    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 Azure Databricks. Pressione Enter para aceitar o nome de perfil sugerido ou digite o nome de um perfil novo ou existente. Qualquer perfil existente com o mesmo nome é substituído pelas informações que você inseriu. Você pode usar perfis para alternar rapidamente seu contexto de autenticação em vários espaços de trabalho.

    Para obter uma lista de quaisquer perfis existentes, em um terminal ou prompt de comando separado, use a CLI do Databricks para executar o comando databricks auth profiles. Para visualizar as configurações existentes de um perfil específico, execute o comando databricks auth env --profile <profile-name>.

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

  4. Para exibir o valor atual do token OAuth de um perfil e o carimbo de data/hora de expiração do token, execute um dos seguintes comandos:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Se você tiver vários perfis com o mesmo --host valor, talvez seja necessário especificar as --host opções e -p juntas para ajudar a CLI do Databricks a encontrar as informações corretas do token OAuth.

Etapa 2: Criar o pacote

Um pacote contém os artefatos que você deseja implantar e as configurações para os fluxos de trabalho que deseja executar.

  1. Na raiz do seu pacote, crie as seguintes pastas e arquivos, dependendo se você usa o Poetry ou setuptools para construir arquivos de roda Python:

    Poesia

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── pyproject.toml
    

    Ferramentas de configuração

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── setup.py
    
  2. Deixe o __init__.py arquivo vazio.

  3. Adicione o seguinte código ao main.py ficheiro e, em seguida, guarde o ficheiro:

    from my_package.my_module import *
    
    def main():
    
      first = 200
      second = 400
    
      print(f"{first} + {second} = {add_two_numbers(first, second)}")
      print(f"{second} - {first} = {subtract_two_numbers(second, first)}")
      print(f"{first} * {second} = {multiply_two_numbers(first, second)}")
      print(f"{second} / {first} = {divide_two_numbers(second, first)}")
    
    if __name__ == "__main__":
      main()
    
  4. Adicione o seguinte código ao my_module.py ficheiro e, em seguida, guarde o ficheiro:

    def add_two_numbers(a, b):
      return a + b
    
    def subtract_two_numbers(a, b):
      return a - b
    
    def multiply_two_numbers(a, b):
      return a * b
    
    def divide_two_numbers(a, b):
      return a / b
    
  5. Adicione o seguinte código ao pyproject.toml ficheiro ou setup.py e, em seguida, guarde o ficheiro:

    Pyproject.toml

    [tool.poetry]
    name = "my_package"
    version = "0.0.1"
    description = "<my-package-description>"
    authors = ["my-author-name <my-author-name>@<my-organization>"]
    
    [tool.poetry.dependencies]
    python = "^3.10"
    
    [build-system]
    requires = ["poetry-core"]
    build-backend = "poetry.core.masonry.api"
    
    [tool.poetry.scripts]
    main = "my_package.main:main"
    
    • Substitua my-author-name pelo nome de contato principal da sua organização.
    • Substitua my-author-name>@<my-organization pelo endereço de contato de e-mail principal da sua organização.
    • Substitua <my-package-description> por uma descrição de exibição para seu arquivo de roda Python.

    Setup.py

    from setuptools import setup, find_packages
    
    import src
    
    setup(
      name = "my_package",
      version = "0.0.1",
      author = "<my-author-name>",
      url = "https://<my-url>",
      author_email = "<my-author-name>@<my-organization>",
      description = "<my-package-description>",
      packages=find_packages(where='./src'),
      package_dir={'': 'src'},
      entry_points={
        "packages": [
          "main=my_package.main:main"
        ]
      },
      install_requires=[
        "setuptools"
      ]
    )
    
    • Substitua https://<my-url> pelo URL da sua organização.
    • Substitua <my-author-name> pelo nome de contato principal da sua organização.
    • Substitua <my-author-name>@<my-organization> pelo endereço de contato de e-mail principal da sua organização.
    • Substitua <my-package-description> por uma descrição de exibição para seu arquivo de roda Python.

Etapa 3: Criar o arquivo de configuração do pacote

Um arquivo de configuração de pacote descreve os artefatos que você deseja implantar e os fluxos de trabalho que deseja executar.

  1. Na raiz do seu pacote, adicione um arquivo de configuração do pacote chamado databricks.yml. Adicione o seguinte código a este ficheiro:

    Poesia

    Nota

    Se você já construiu um arquivo de roda Python e deseja apenas implantá-lo, modifique o seguinte arquivo de configuração do pacote omitindo o artifacts mapeamento. A CLI do Databricks assumirá que o arquivo de roda Python já está compilado e implantará automaticamente os arquivos especificados whl nas libraries entradas da matriz.

    bundle:
      name: my-wheel-bundle
    
    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    
    resources:
      jobs:
        wheel-job:
          name: wheel-job
          tasks:
            - task_key: wheel-task
              new_cluster:
                spark_version: 13.3.x-scala2.12
                node_type_id: Standard_DS3_v2
                data_security_mode: USER_ISOLATION
                num_workers: 1
              python_wheel_task:
                entry_point: main
                package_name: my_package
              libraries:
                - whl: ./dist/*.whl
    
    targets:
      dev:
        workspace:
        host: <workspace-url>
    

    Ferramentas de configuração

    bundle:
      name: my-wheel-bundle
    
    resources:
      jobs:
        wheel-job:
          name: wheel-job
          tasks:
            - task_key: wheel-task
              new_cluster:
                spark_version: 13.3.x-scala2.12
                node_type_id: Standard_DS3_v2
                data_security_mode: USER_ISOLATION
                num_workers: 1
              python_wheel_task:
                entry_point: main
                package_name: my_package
              libraries:
                - whl: ./dist/*.whl
    
    targets:
      dev:
        workspace:
        host: <workspace-url>
    

    Substitua <workspace-url> pelo URL por espaço de trabalho, por exemplo https://adb-1234567890123456.7.azuredatabricks.net.

    O artifacts mapeamento é necessário para construir arquivos de roda Python com Poetry e é opcional para construir arquivos de roda Python com setuptools. O artifacts mapeamento contém uma ou mais definições de artefato com os seguintes mapeamentos:

    • O type mapeamento deve estar presente e definido para whl especificar que um arquivo de roda Python deve ser construído. Para setuptools, whl é o padrão se nenhuma definição de artefato for especificada.
    • O path mapeamento indica o caminho para o pyproject.toml arquivo para Poetry ou para o setup.py arquivo para setuptools. Esse caminho é relativo ao databricks.yml arquivo. Para setuptools, esse caminho é . (o mesmo diretório que o databricks.yml arquivo) por padrão.
    • O build mapeamento indica quaisquer comandos de compilação personalizados a serem executados para construir o arquivo de roda do Python. Para setuptools, este comando é python3 setup.py bdist wheel por padrão.
    • O files mapeamento consiste em um ou mais source mapeamentos que especificam quaisquer arquivos adicionais a serem incluídos na compilação da roda do Python. Não há inadimplência.

    Nota

    Se desejar instalar o arquivo de roda Python em um cluster de destino que tenha o Databricks Runtime 12.2 LTS ou inferior instalado, você deve adicionar o seguinte mapeamento de nível superior ao databricks.yml arquivo:

    # Applies to jobs with python_wheel_task and that use
    # clusters with Databricks Runtime 13.0 or below installed.
    experimental:
      python_wheel_wrapper: true
    

    Esse mapeamento instrui a CLI do Databricks a fazer o seguinte:

    • Implanta uma cópia do arquivo de roda Python em segundo plano. Esse caminho de implantação normalmente é ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
    • Cria um bloco de anotações em segundo plano que contém instruções para instalar o arquivo de roda Python implantado anterior no cluster de destino. O caminho deste bloco de anotações é normalmente ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>.
    • Quando você executa um trabalho que contém uma tarefa de roda Python e essa tarefa faz referência ao arquivo de roda Python anterior, um trabalho é criado em segundo plano que executa o bloco de anotações anterior.

    Não é necessário especificar esse mapeamento para clusters de destino com o Databricks Runtime 13.1 ou superior instalado, pois as instalações de roda Python do sistema de arquivos do espaço de trabalho do Azure Databricks serão instaladas automaticamente nesses clusters de destino.

  2. Se você usa Poesia, faça o seguinte:

    • Instale o Poetry, versão 1.6 ou superior, se ainda não estiver instalado. Para verificar a versão instalada do Poetry, execute o comando poetry -V ou poetry --version.
    • Certifique-se de ter o Python versão 3.10 ou superior instalado. Para verificar sua versão do Python, execute o comando python -V ou python --version.
    • Verifique se você tem a CLI do Databricks versão 0.209.0 ou superior. Para a sua versão da CLI do Databricks, execute o comando databricks -v ou databricks --version. Consulte Instalar ou atualizar a CLI do Databricks.
  3. Se você usar setuptoolso , instale os wheel pacotes e setuptools se eles ainda não estiverem instalados, executando o seguinte comando:

    pip3 install --upgrade wheel setuptools
    
  4. Se você pretende armazenar esse pacote com um provedor Git, adicione um .gitignore arquivo na raiz do projeto e adicione as seguintes entradas a esse arquivo:

    Poesia

    .databricks
    dist
    

    Ferramentas de configuração

    .databricks
    build
    dist
    src/my_package/my_package.egg-info
    

Etapa 4: Validar o arquivo de configuração do pacote do projeto

Nesta etapa, você verifica se a configuração do pacote é válida.

  1. No diretório raiz, valide o arquivo de configuração do pacote:

    databricks bundle validate
    
  2. Se um resumo da configuração do pacote for retornado, a validação será bem-sucedida. Se algum erro for retornado, corrija-os e repita esta etapa.

Se você fizer alguma alteração no pacote após esta etapa, repita esta etapa para verificar se a configuração do pacote ainda é válida.

Etapa 5: Criar o arquivo de roda Python e implantar o projeto local no espaço de trabalho remoto

Crie o arquivo de roda Python localmente, implante o arquivo de roda Python construído em seu espaço de trabalho, implante o bloco de anotações em seu espaço de trabalho e crie o trabalho em seu espaço de trabalho:

databricks bundle deploy -t dev

Etapa 6: Executar o projeto implantado

  1. Execute o trabalho implantado, que usa o bloco de anotações implantado para chamar o arquivo de roda Python implantado:

    databricks bundle run -t dev wheel-job
    
  2. Na saída, copie e cole-a Run URL na barra de endereço do seu navegador da Web.

  3. Na página Saída da execução do trabalho, os seguintes resultados aparecem:

    200 + 400 = 600
    400 - 200 = 200
    200 * 400 = 80000
    400 / 200 = 2.0
    

Se você fizer alterações no pacote após esta etapa, repita as etapas 3 a 5 para verificar se a configuração do pacote ainda é válida, reimplantar o projeto e executar o projeto reimplantado.

Criar e instalar um arquivo de roda Python para um trabalho

Para construir um arquivo de roda Python com Poetry ou setuptoolse, em seguida, usar esse arquivo de roda Python em um trabalho, você deve adicionar um ou dois mapeamentos ao seu databricks.yml arquivo.

Se você usa Poetry, você deve incluir o seguinte artifacts mapeamento no databricks.yml arquivo. Esse mapeamento executa o poetry build comando e usa o pyproject.toml arquivo que está no mesmo diretório que o databricks.yml arquivo:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Nota

O artifacts mapeamento é opcional para setuptools. Por padrão, para setuptools o Databricks CLI executa o comando python3 setup.py bdist_wheel e usa o setup.py arquivo que está no mesmo diretório que o databricks.yml arquivo. A CLI do Databricks pressupõe que você já tenha executado um comando como pip3 install --upgrade wheel setuptools instalar os wheel pacotes e setuptools se eles ainda não estiverem instalados.

Além disso, o mapeamento da tarefa de libraries trabalho deve conter um whl valor que especifique o caminho para o arquivo de roda Python construído em relação ao arquivo de configuração no qual ele é declarado. O exemplo a seguir mostra isso em uma tarefa de bloco de anotações (as reticências indicam conteúdo omitido para brevidade):

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-job-notebook-task
          notebook_task:
            notebook_path: ./my_notebook.py
          libraries:
            - whl: ./dist/*.whl
          new_cluster:
            # ...

Criar e instalar um arquivo de roda Python para um pipeline

Para construir um arquivo de roda Python com Poetry ou setuptools e, em seguida, fazer referência a esse arquivo de roda Python em um pipeline Delta Live Tables, você deve adicionar um mapeamento ao seu databricks.yml arquivo se usar Poetry e adicionar um %pip install comando ao seu bloco de anotações de pipeline, da seguinte maneira.

Se você usa Poetry, você deve incluir o seguinte artifacts mapeamento no databricks.yml arquivo. Esse mapeamento executa o poetry build comando e usa o pyproject.toml arquivo que está no mesmo diretório que o databricks.yml arquivo:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Nota

O artifacts mapeamento é opcional para setuptools. Por padrão, para setuptools o Databricks CLI executa o comando python3 setup.py bdist_wheel e usa o setup.py arquivo que está no mesmo diretório que o databricks.yml arquivo. A CLI do Databricks pressupõe que você já tenha executado um comando como pip3 install --upgrade wheel setuptools instalar os wheel pacotes e setuptools se eles ainda não estiverem instalados.

Além disso, o bloco de anotações de pipeline relacionado deve incluir um %pip install comando para instalar o arquivo de roda Python que é construído. Consulte Bibliotecas Python.