Desenvolva um Job no Databricks usando pacotes ativos do Databricks

Visualização

Este recurso está em visualização pública.

Os Databricks ativo Bundles, também conhecidos simplesmente como bundles, permitem que o senhor valide, implante e execute programaticamente um recurso da Databricks, como um Job. O senhor também pode usar os bundles para gerenciar programaticamente o pipeline do Delta Live Tables e trabalhar com o MLOps Stacks. Consulte O que são pacotes ativos da Databricks?

Este artigo descreve os passos que você pode seguir a partir de uma configuração de desenvolvimento local para usar um pacote que gerencia programaticamente um Job. Consulte Introdução ao fluxo de trabalho do Databricks.

Se você tiver Job existente que foi criado usando a interface de usuário ou API do fluxo de trabalho do Databricks que deseja mover para pacotes, então você deverá recriá-los como arquivos de configuração de pacote configurável. Para tal, a Databricks recomenda que primeiro crie um pacote utilizando os passos abaixo e valide se o pacote funciona. Você pode então adicionar definições Job , Notebook e outras fontes ao pacote configurável. Consulte Adicionar uma definição Job existente a um pacote configurável.

Além de usar o Databricks CLI para executar um Job implantado por um pacote, o senhor também pode view e executar esse trabalho na interface do usuário Databricks Jobs. Consulte view e execute um Job criado com um Databricks ativo Bundle.

Requisitos

Decisão: Criar o pacote usando um padrão ou manualmente

Decida se o senhor deseja criar o pacote usando um padrão ou manualmente:

Crie o pacote usando um padrão

Nesses passos, o senhor cria o bundle usando o modelo de bundle do Databricks default para Python, que consiste em um código Notebook ou Python, emparelhado com a definição de um Job para executá-lo. Em seguida, o senhor valida, implanta e executa o Job implementado em seu Databricks workspace.

o passo 1: Configurar autenticação

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

Observação

A autenticação U2M é apropriada para testar esses passos em tempo real. Para um fluxo de trabalho totalmente automatizado, a 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 tokens OAuth localmente executando o comando a seguir para cada workspace de destino.

    No comando a seguir, substitua <workspace-url> pela URL da instância do espaço de trabalho do 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. Qualquer perfil existente com o mesmo nome será substituído pelas informações inseridas. Você pode usar perfis para alternar rapidamente seu contexto de autenticação em vários workspace.

    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 view as configurações existentes de um perfil específico, execute o comando databricks auth env --profile <profile-name>.

  3. No navegador da Web, siga as instruções na tela para log in no workspace do Databricks.

  4. Para view o valor atual tokens OAuth de um perfil e o carimbo de data/hora de expiração futura dos tokens , 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 valor --host, talvez seja necessário especificar as opções --host e -p juntas para ajudar a CLI do Databricks a encontrar as informações tokens OAuth correspondentes corretas.

o passo 2: Crie o pacote

Um bundle contém os artefatos que você deseja implantar e as configurações do recurso que deseja executar.

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

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

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

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

  5. Se desejar que seu pacote inclua um Notebook de amostra, para Include a stub (sample) notebook, deixe o valor default de yes pressionando Enter. Isso cria um Notebook de amostra no diretório src do seu pacote.

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

  7. Para Include a stub (sample) Python package, selecione no e pressione Enter. Isto instrui a CLI do Databricks a não adicionar arquivos de pacote Python wheel de amostra ou instruções de construção relacionadas ao seu pacote.

o passo 3: Explore o pacote

Para view os arquivos que o padrão gerou, mude para o diretório raiz do seu pacote recém-criado e abra este diretório com seu IDE preferido, por exemplo Visual Studio Code. Arquivos de interesse particular incluem o seguinte:

  • databricks.yml: este arquivo especifica o nome programático do pacote configurável, inclui uma referência à definição Job e especifica configurações sobre o workspace de destino.

  • resources/<project-name>_job.yml: Este arquivo especifica as configurações do Job .

  • src/notebook.ipynb: Este arquivo é um Notebook que, ao ser executado, simplesmente inicializa um RDD que contém os números de 1 a 10.

Para customizar Job, os mapeamentos dentro de uma declaração Job correspondem à carga útil da solicitação de operações create Job conforme definido em POST /api/2.1/Job/create na referência da API REST, expressa em formato YAML.

Dica

Você pode definir, combinar e substituir as configurações de novos clusters Job em pacotes usando as técnicas descritas em Substituir configurações de cluster em pacotes ativos do Databricks.

o passo 4: Valide o arquivo de configuração do pacote configurável do projeto

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

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

    databricks bundle validate
    
  2. Se uma representação JSON da configuração do pacote configurável for retornada, a validação foi bem-sucedida. Se algum erro for retornado, corrija-o e repita este passo.

Se você fizer alguma alteração em seu pacote após este passo, você deve repetir este passo para verificar se a configuração do seu pacote ainda é válida.

o passo 5: implantei o projeto local no espaço de trabalho remoto

Nesta etapa, você implantou o Notebook local em seu workspace remoto do Databricks e criou o Job do Databricks em seu workspace.

  1. Na raiz do pacote, use a CLI do Databricks para executar o comando bundle deploy da seguinte forma:

    databricks bundle deploy -t dev
    
  2. Verifique se o Notebook local foi implantado: Na barra lateral do workspace do Databricks, clique em workspace.

  3. Clique na pasta Usuários > <your-username> > .bundle > <project-name> > dev > arquivos > src . O Notebook deve estar nesta pasta.

  4. Verifique se o Job foi criado: Na barra lateral do workspace do Databricks, clique em fluxo de trabalho.

  5. Na Jobs tab, clique em [dev <your-username>] <project-name>_job.

  6. Clique na tab tarefa . Deve haver uma tarefa: Notebook.

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

o passo 6: execução do projeto implantado

Nesta passo, você executa o Job do Databricks em seu workspace.

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

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

  3. No seu workspace do Databricks, depois que a tarefa Job for concluída com sucesso e mostrar uma barra de título verde, clique na tarefa Job para ver os resultados.

Se você fizer alguma alteração em seu pacote após esta etapa, repita as etapas 4 a 6 para verificar se a configuração do pacote ainda é válida, reimplantar o projeto e executar o projeto reimplantado.

o passo 7: Limpar

Nesta etapa, você exclui o Notebook implantado e o Job do seu espaço de trabalho.

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

    databricks bundle destroy
    
  2. Confirme a solicitação de exclusão Job : quando solicitado a destruir recursos permanentemente, digite y e pressione Enter.

  3. Confirme a solicitação de exclusão Notebook : Quando solicitado a destruir permanentemente a pasta implantada anteriormente e todos os seus arquivos, digite y e pressione Enter.

  4. Se você também deseja excluir o pacote configurável de sua máquina de desenvolvimento, agora você pode excluir o diretório local da etapa 2.

Você chegou ao final dos passos para criar um pacote usando um padrão.

Crie o pacote manualmente

Nesses passos, o senhor cria um pacote do zero. Esse pacote simples consiste em dois Notebooks e na definição de um Databricks Job para executar esses Notebooks. Em seguida, o senhor valida, implanta e executa o Notebook implantado a partir do site Job em seu Databricks workspace. Esses passos automatizam o início rápido intitulado Create your first workflow with a Databricks Job.

o passo 1: Criar o pacote

Um bundle contém os artefatos que você deseja implantar e as configurações do recurso que deseja executar.

  1. Crie ou identifique um diretório vazio em sua máquina de desenvolvimento.

  2. Mude para o diretório vazio em seu terminal ou abra o diretório vazio em seu IDE.

Dica

Seu diretório vazio pode estar associado a um repositório clonado que é gerenciado por um provedor Git. Isso permite que você gerencie seu pacote com controle de versão externo e colabore mais facilmente com outros desenvolvedores e profissionais IT em seu projeto. No entanto, para ajudar a simplificar esta demonstração, um repositório clonado não é usado aqui.

Se você optar por clonar um repositório para esta demonstração, o Databricks recomenda que o repositório esteja vazio ou tenha apenas arquivos básicos, como README e .gitignore. Caso contrário, quaisquer arquivos pré-existentes no repositório podem ser sincronizados desnecessariamente com seu workspace Databricks.

passo 2: Adicionar Notebook ao projeto

Nesta passo, você adiciona dois Notebook ao seu projeto. O primeiro Notebook obtém uma lista de tendências de nomes de bebês desde 2007 da fonte pública de dados do Departamento de Saúde do Estado de Nova York. Consulte Nomes de bebês: Tendências por nome: Início de 2007 no site do departamento. Este primeiro Notebook salva esses dados na pasta FileStore do seu workspaceDatabricks no DBFS. O segundo Notebook query os dados salvos e exibe contagens agregadas dos nomes dos bebês por primeiro nome e sexo para 2014.

  1. Na raiz do diretório, crie o primeiro Notebook, um arquivo chamado retrieve-baby-names.py.

  2. Adicione o seguinte código ao arquivo retrieve-baby-names.py :

    # Databricks notebook source
    import requests
    
    response = requests.get('http://health.data.ny.gov/api/views/myeu-hzra/rows.csv')
    csvfile = response.content.decode('utf-8')
    dbutils.fs.put("dbfs:/FileStore/babynames.csv", csvfile, True)
    
  3. Crie o segundo Notebook, um arquivo chamado filter-baby-names.py, no mesmo diretório.

  4. Adicione o seguinte código ao arquivo filter-baby-names.py :

    # Databricks notebook source
    babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("dbfs:/FileStore/babynames.csv")
    babynames.createOrReplaceTempView("babynames_table")
    years = spark.sql("select distinct(Year) from babynames_table").rdd.map(lambda row : row[0]).collect()
    years.sort()
    dbutils.widgets.dropdown("year", "2014", [str(x) for x in years])
    display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
    

o passo 3: Adicione um arquivo de esquema de configuração de pacote ao projeto

Se você estiver usando um IDE como Visual Studio Code, PyCharm Professional ou IntelliJ IDEA Ultimate que fornece suporte para arquivos YAML e arquivos de esquema JSON, você pode usar seu IDE não apenas para criar o arquivo de esquema de configuração do pacote, mas também para verificar o pacote do seu projeto sintaxe e formatação do arquivo de configuração e fornecem dicas de conclusão de código, como segue. Observe que, embora o arquivo de configuração do pacote configurável que você criará posteriormente na etapa 5 seja baseado em YAML, o arquivo de esquema de configuração do pacote configurável nesta etapa é baseado em JSON.

  1. Adicione suporte ao servidor de linguagem YAML ao Visual Studio Code, por exemplo, instalando a extensão YAML do Visual Studio Code Marketplace.

  2. Gere o arquivo de esquema JSON de configuração do pacote ativo do Databricks usando a CLI do Databricks para executar o comando bundle schema e redirecione a saída para um arquivo JSON. Por exemplo, gere um arquivo chamado bundle_config_schema.json no diretório atual, como segue:

    databricks bundle schema > bundle_config_schema.json
    
  3. Observe que mais tarde na etapa 5, você adicionará o seguinte comentário ao início do arquivo de configuração do pacote configurável, que associa o arquivo de configuração do pacote configurável ao arquivo de esquema JSON especificado:

    # yaml-language-server: $schema=bundle_config_schema.json
    

    Observação

    No comentário anterior, se o arquivo de esquema JSON de configuração do pacote Databricks ativo estiver em um caminho diferente, substitua bundle_config_schema.json pelo caminho completo para seu arquivo de esquema.

  1. Gere o arquivo de esquema JSON de configuração do pacote ativo do Databricks usando a CLI do Databricks para executar o comando bundle schema e redirecione a saída para um arquivo JSON. Por exemplo, gere um arquivo chamado bundle_config_schema.json no diretório atual, como segue:

    databricks bundle schema > bundle_config_schema.json
    
  2. Configure o PyCharm para reconhecer o arquivo de esquema JSON de configuração do pacote configurável e, em seguida, conclua o mapeamento do esquema JSON seguindo as instruções em Configurar um esquema JSON personalizado.

  3. Observe que posteriormente na etapa 5, você usará o PyCharm para criar ou abrir um arquivo de configuração de pacote configurável. Por convenção, esse arquivo é denominado databricks.yml.

  1. Gere o arquivo de esquema JSON de configuração do pacote ativo do Databricks usando a CLI do Databricks para executar o comando bundle schema e redirecione a saída para um arquivo JSON. Por exemplo, gere um arquivo chamado bundle_config_schema.json no diretório atual, como segue:

    databricks bundle schema > bundle_config_schema.json
    
  2. Configure o IntelliJ IDEA para reconhecer o arquivo de esquema JSON de configuração do pacote configurável e, em seguida, conclua o mapeamento do esquema JSON seguindo as instruções em Configurar um esquema JSON personalizado.

  3. Observe que posteriormente na etapa 5, você usará o IntelliJ IDEA para criar ou abrir um arquivo de configuração de pacote configurável. Por convenção, esse arquivo é denominado databricks.yml.

passo 4: configurar a autenticação

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

Observação

A autenticação U2M é apropriada para testar esses passos em tempo real. Para um fluxo de trabalho totalmente automatizado, a 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 tokens OAuth localmente executando o comando a seguir para cada workspace de destino.

    No comando a seguir, substitua <workspace-url> pela URL da instância do espaço de trabalho do 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. Qualquer perfil existente com o mesmo nome será substituído pelas informações inseridas. Você pode usar perfis para alternar rapidamente seu contexto de autenticação em vários workspace.

    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 view as configurações existentes de um perfil específico, execute o comando databricks auth env --profile <profile-name>.

  3. No navegador da Web, siga as instruções na tela para log in no workspace do Databricks.

  4. Para view o valor atual tokens OAuth de um perfil e o carimbo de data/hora de expiração futura dos tokens , 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 valor --host, talvez seja necessário especificar as opções --host e -p juntas para ajudar a CLI do Databricks a encontrar as informações tokens OAuth correspondentes corretas.

o passo 5: Adicione um arquivo de configuração de pacote ao projeto

Neste passo você define como deseja implantar e executar os dois Notebook. Para esta demonstração, você deseja usar um Job do Databricks para executar o primeiro Notebook e depois o segundo Notebook. Como o primeiro Notebook salva os dados e o segundo Notebook query os dados salvos, você deseja que o primeiro Notebook termine de ser executado antes do segundo Notebook começar. Você modela esses objetivos em um arquivo de configuração de pacote configurável em seu projeto.

  1. Na raiz do diretório, crie o arquivo de configuração do pacote configurável, um arquivo denominado databricks.yml.

  2. Adicione o seguinte código ao arquivo databricks.yml , substituindo <workspace-url> pelo URL do seu espaço de trabalho, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com. Este URL deve corresponder ao do seu arquivo .databrickscfg :

Dica

A primeira linha, começando com # yaml-language-server, será obrigatória somente se o seu IDE for compatível. Consulte a etapa 3 anterior para obter detalhes.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: baby-names

resources:
  jobs:
    retrieve-filter-baby-names-job:
      name: retrieve-filter-baby-names-job
      job_clusters:
        - job_cluster_key: common-cluster
          new_cluster:
            spark_version: 12.2.x-scala2.12
            node_type_id: i3.xlarge
            num_workers: 1
      tasks:
        - task_key: retrieve-baby-names-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./retrieve-baby-names.py
        - task_key: filter-baby-names-task
          depends_on:
            - task_key: retrieve-baby-names-task
          job_cluster_key: common-cluster
          notebook_task:
            notebook_path: ./filter-baby-names.py

targets:
  development:
    workspace:
      host: <workspace-url>

Para customizar Job, os mapeamentos dentro de uma declaração Job correspondem à carga útil da solicitação de operações create Job conforme definido em POST /api/2.1/Job/create na referência da API REST, expressa em formato YAML.

Dica

Você pode definir, combinar e substituir as configurações de novos clusters Job em pacotes usando as técnicas descritas em Substituir configurações de cluster em pacotes ativos do Databricks.

o passo 6: Valide o arquivo de configuração do pacote configurável do projeto

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

  1. Use a CLI do Databricks para executar o comando bundle validate da seguinte maneira:

    databricks bundle validate
    
  2. Se uma representação JSON da configuração do pacote configurável for retornada, a validação foi bem-sucedida. Se algum erro for retornado, corrija-o e repita este passo.

Se você fizer alguma alteração em seu pacote após este passo, você deve repetir este passo para verificar se a configuração do seu pacote ainda é válida.

passo 7: aprimorar o projeto local para o espaço de trabalho remoto

Nesta passo, você aprimora os dois Notebook locais para seu workspace remoto do Databricks e cria o Job do Databricks em seu workspace.

  1. Use a CLI do Databricks para executar o comando bundle deploy da seguinte maneira:

    databricks bundle deploy -t development
    
  2. Verifique se os dois Notebook locais foram implantados: Na barra lateral do workspace do Databricks, clique em workspace.

  3. Clique na pasta Usuários > <your-username> > .bundle > baby-names > development > files . Os dois Notebook devem estar nesta pasta.

  4. Verifique se o Job foi criado: Na barra lateral do workspace do Databricks, clique em fluxo de trabalho.

  5. Na tab Jobs , clique em retrieve-filter-baby-names-Job.

  6. Clique na tab tarefa . Deve haver duas tarefas: retrieve-baby-names-task e filter-baby-names-task.

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

passo 8: execução do projeto implantado

Nesta passo, você executa o Job do Databricks em seu workspace.

  1. Use a CLI do Databricks para executar o comando bundle run da seguinte maneira:

    databricks bundle run -t development retrieve-filter-baby-names-job
    
  2. Copie o valor de Run URL que aparece em seu terminal e cole esse valor em seu navegador da Web para abrir seu workspace do Databricks.

  3. Em seu workspace Databricks, depois que as duas tarefas forem concluídas com êxito e mostrarem barras de título verdes, clique na tarefa filtrar nomes de bebês para ver os resultados query .

Se você fizer alguma alteração em seu pacote após esta etapa, repita as etapas 6 a 8 para verificar se a configuração do pacote ainda é válida, reimplantar o projeto e executar o projeto reimplantado.

passo 9: Limpar

Nesta passo, você exclui os dois Notebook implantados e o Job do seu workspace.

  1. Use a CLI do Databricks para executar o comando bundle destroy da seguinte maneira:

    databricks bundle destroy
    
  2. Confirme a solicitação de exclusão Job : quando solicitado a destruir recursos permanentemente, digite y e pressione Enter.

  3. Confirme a solicitação de exclusão Notebook : quando solicitado a destruir permanentemente a pasta previamente aprimorada e todos os seus arquivos, digite y e pressione Enter.

A execução do comando bundle destroy exclui apenas o Job implantado e a pasta que contém os dois Notebook implantados. Este comando não exclui nenhum efeito colateral, como o arquivo babynames.csv que o primeiro Notebook criou. Para excluir o arquivo babybnames.csv , faça o seguinte:

  1. Na barra lateral do seu workspace do Databricks, clique em Catálogo.

  2. Clique em Procurar DBFS.

  3. Clique na pasta FileStore .

  4. Clique na seta dropdown ao lado de babynames.csv, e clique em Excluir.

  5. Se você também deseja excluir o pacote configurável de sua máquina de desenvolvimento, agora você pode excluir o diretório local na etapa 1.

Adicionar uma definição Job existente a um pacote

Você pode usar uma definição Job existente como base para definir um novo Job em um arquivo de configuração de pacote configurável. Para fazer isso, siga os seguintes passos.

Observação

Os passos a seguir criam um novo Job que possui as mesmas configurações do Job existente. No entanto, o novo Job tem um ID Job diferente do Job existente. Você não pode importar automaticamente um ID Job existente para um pacote.

o passo 1: Obtenha a definição Job existente no formato YAML

Nesta etapa, use a interface do usuário workspace do Databricks para obter a representação YAML da definição Job existente.

  1. Na barra lateral do seu workspacedo Databricks, clique em fluxo de trabalho.

  2. Na Trabalhos tab, clique no Joblink Nome do .

  3. Ao lado do botão executar agora , clique nas reticências e, em seguida, clique em view YAML.

  4. Na Criar tab Job, copie o YAML da definição para a área de transferência local clicando em Copiar .

o passo 2: Adicione o YAML de definição Job a um arquivo de configuração de pacote configurável

No arquivo de configuração do pacote, adicione o YAML que você copiou do passo anterior para um dos seguintes locais rótulo <job-yaml-can-go-here> nos arquivos de configuração do pacote, como segue:

resources:
  jobs:
    <some-unique-programmatic-identifier-for-this-job>:
      <job-yaml-can-go-here>

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      jobs:
        <some-unique-programmatic-identifier-for-this-job>:
          <job-yaml-can-go-here>

o passo 3: Adicionar Notebook, arquivos Python e outros artefatos ao pacote

Quaisquer arquivos Python e Notebook referenciados no Job existente devem ser movidos para as fontes do pacote.

Para melhor compatibilidade com pacotes, Notebook deve usar o formato IPython Notebook (.ipynb). Se você desenvolver o pacote localmente, poderá exportar um notebook existente de um workspace do Databricks para o formato .ipynb clicando em Arquivo > Exportar > Notebook IPython na interface do usuário do notebook do Databricks. Por convenção, você deve colocar downloads Notebook o src/ no diretório do seu pacote.

Depois de adicionar seu Notebook, arquivos Python e outros artefatos ao pacote configurável, certifique-se de que sua definição de Job faça referência a eles. Por exemplo, para um Notebook com o nome de arquivo hello.ipynb que está em um diretório src/ e o diretório src/ está na mesma pasta que o arquivo de configuração do pacote configurável que faz referência ao diretório src/, a definição Job pode ser expresso da seguinte forma:

resources:
  jobs:
    hello-job:
      name: hello-job
      tasks:
      - task_key: hello-task
        notebook_task:
          notebook_path: ./src/hello.ipynb

o passo 4: Validar, implantar e executar o novo Job

  1. Valide se os arquivos de configuração do pacote configurável estão sintaticamente corretos executando o seguinte comando:

    databricks bundle validate
    
  2. implante o pacote executando o seguinte comando. Neste comando, substitua <target-identifier> pelo identificador programático exclusivo do destino da configuração do pacote:

    databricks bundle deploy -t <target-identifier>
    
  3. Execute o site Job com o seguinte comando.

    databricks bundle run -t <target-identifier> <job-identifier>
    
    • Substitua <target-identifier> pelo identificador programático exclusivo do destino da configuração do pacote.

    • Substitua <job-identifier> pelo identificador programático exclusivo do site Job da configuração do pacote.

Configure um Job que use serverless compute

Visualização

serverless compute O fluxo de trabalho está em Public Preview. Para obter informações sobre elegibilidade e habilitação, consulte Enable serverless compute public preview.

Os exemplos a seguir demonstram as configurações do pacote para criar um Job que usa serverless compute.

Para usar serverless compute para executar um Job que inclua Notebook tarefa, omita a configuração job_clusters do arquivo de configuração do pacote.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: baby-names

resources:
  jobs:
    retrieve-filter-baby-names-job-serverless:
      name: retrieve-filter-baby-names-job-serverless
      tasks:
        - task_key: retrieve-baby-names-task
          notebook_task:
            notebook_path: ./retrieve-baby-names.py
        - task_key: filter-baby-names-task
          depends_on:
            - task_key: retrieve-baby-names-task
          notebook_task:
            notebook_path: ./filter-baby-names.py

  targets:
    development:
      workspace:
        host: <workspace-url>

Para usar serverless compute para executar um Job que inclua Python tarefa, inclua a configuração environments.

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: serverless-python-tasks

resources:
jobs:
  serverless-python-job:
    name: serverless-job-with-python-tasks

    tasks:
      - task_key: wheel-task-1
        python_wheel_task:
          entry_point: main
          package_name: wheel_package
        environment_key: Default

    environments:
      - environment_key: Default
        spec:
          client: "1"
          dependencies:
            - workflows_authoring_toolkit==0.0.1

targets:
  development:
    workspace:
      host: <workspace-url>

Veja a execução de seu Databricks Job com serverless compute para fluxo de trabalho.