Crie um pacote manualmente
Neste tutorial, o senhor cria um Databricks ativo Bundle 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 Job em seu Databricks workspace. Essas etapas automatizam o início rápido intitulado Create your first fluxo de trabalho with LakeFlow Jobs.
Requisitos
- Databricks CLI versão 0.218.0 ou acima. Para verificar a versão instalada do site Databricks CLI, execute o comando databricks -v. Para instalar a CLI da Databricks, consulte Instalar ou atualizar a CLI da Databricks.
- Autenticação configurada para a CLI do Databricks. A autenticação U2M é adequada para testar essas etapas em tempo real. Consulte Autenticação para a CLI do Databricks.
- O site remoto Databricks workspace deve ter os arquivos workspace ativados. Consulte O que são arquivos workspace?
Etapa 1: criar o pacote
Um pacote contém os artefatos que o senhor deseja implantar e as configurações do recurso que deseja executar.
- Crie ou identifique um diretório vazio na sua máquina de desenvolvimento.
- Mude para o diretório vazio em seu terminal ou abra-o em seu IDE.
O senhor também pode usar um diretório que contenha um repositório clonado de um provedor Git. Isso permite que o senhor gerencie seu pacote com controle de versão externo e colabore mais facilmente com outros desenvolvedores e profissionais do IT em seu projeto.
Se o senhor optar por clonar um repositório para esta demonstração, a Databricks recomenda que o repositório esteja vazio ou tenha apenas arquivos básicos, como README e .gitignore. Caso contrário, qualquer arquivo pré-existente no repositório poderá ser sincronizado desnecessariamente com o seu Databricks workspace.
Etapa 2: Adicionar o Notebook ao projeto
Nesta etapa, o senhor adiciona dois Notebook ao seu projeto. O primeiro Notebook obtém uma lista de nomes de bebês em alta desde 2007 da fonte pública de dados do New York State Department of Health. Consulte Nomes de bebês: tendências por nome: início de 2007 no site do departamento. O primeiro Notebook salva esses dados no volume Databricks Unity Catalog chamado my-volume em um esquema chamado default em um catálogo chamado main. O segundo Notebook consulta os dados salvos e exibe contagens agregadas dos nomes de bebês por primeiro nome e sexo para 2014.
- 
Na raiz do diretório, crie o primeiro Notebook, um arquivo chamado retrieve-baby-names.py.
- 
Adicione o código a seguir ao arquivo retrieve-baby-names.py:Python# Databricks notebook source
 import requests
 response = requests.get('http://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv')
 csvfile = response.content.decode('utf-8')
 dbutils.fs.put("/Volumes/main/default/my-volume/babynames.csv", csvfile, True)
- 
Crie o segundo Notebook, um arquivo chamado filter-baby-names.py, no mesmo diretório.
- 
Adicione o código a seguir ao arquivo filter-baby-names.py:Python# Databricks notebook source
 babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my-volume/babynames.csv")
 babynames.createOrReplaceTempView("babynames_table")
 years = spark.sql("select distinct(Year) from babynames_table").toPandas()['Year'].tolist()
 years.sort()
 dbutils.widgets.dropdown("year", "2014", [str(x) for x in years])
 display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
Etapa 3: Adicionar um arquivo de esquema de configuração do pacote ao projeto
Se estiver usando um IDE, como o Visual Studio Code, o PyCharm Professional ou o IntelliJ IDEA Ultimate, que ofereça suporte a arquivos YAML e arquivos de esquema JSON, o usuário poderá usar o IDE não apenas para criar o arquivo de esquema de configuração do pacote, mas também para verificar a sintaxe e a formatação do arquivo de configuração do pacote do projeto.
- Visual Studio Code
- PyCharm Professional
- IntelliJ IDEA Ultimate
- 
Adicione suporte ao servidor de linguagem YAML ao Visual Studio Code, por exemplo, instalando a extensão YAML do Visual Studio Code marketplace. 
- 
Gere o arquivo de esquema de configuração do Databricks ativo Bundle JSON usando o Databricks CLI para executar o bundle schemacomando e redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.jsonno diretório atual, da seguinte forma:Bashdatabricks bundle schema > bundle_config_schema.json
- 
Na Etapa 4, o senhor adicionará o seguinte comentário ao início do arquivo de configuração do pacote, que associa o arquivo de configuração do pacote ao arquivo de esquema JSON especificado: YAML# yaml-language-server: $schema=bundle_config_schema.json
No comentário anterior, se o arquivo de esquema Databricks ativo Bundle configuration JSON estiver em um caminho diferente, substitua bundle_config_schema.json pelo caminho completo do arquivo de esquema.
- 
Gere o arquivo de esquema de configuração do pacote Databricks ativo JSON usando o Databricks CLI para executar o bundle schemacomando e redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.jsonno diretório atual, da seguinte forma:Bashdatabricks bundle schema > bundle_config_schema.json
- 
Configure o PyCharm para reconhecer o arquivo de esquema JSON de configuração do pacote e, em seguida, conclua o mapeamento do esquema JSON, seguindo as instruções em Configurar um esquema JSON personalizado. 
- 
Na Etapa 4, o senhor usará o PyCharm para criar ou abrir um arquivo de configuração de pacote. Por convenção, esse arquivo tem o nome databricks.yml.
- 
Gere o arquivo de esquema de configuração do Databricks ativo Bundle JSON usando o Databricks CLI para executar o bundle schemacomando e redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.jsonno diretório atual, da seguinte forma:Bashdatabricks bundle schema > bundle_config_schema.json
- 
Configure o IntelliJ IDEA para reconhecer o arquivo de esquema JSON de configuração do pacote e, em seguida, conclua o mapeamento do esquema JSON, seguindo as instruções em Configurar um esquema JSON personalizado. 
- 
Na Etapa 4, o senhor usará o IntelliJ IDEA para criar ou abrir um arquivo de configuração de pacote. Por convenção, esse arquivo tem o nome databricks.yml.
Etapa 4: Adicionar um arquivo de configuração do pacote ao projeto
Nesta etapa, o senhor define como implantar e executar os dois Notebooks. Para esta demonstração, o senhor deseja usar um Databricks Job para executar o primeiro Notebook e, em seguida, o segundo Notebook. Como o primeiro Notebook salva os dados e o segundo Notebook consulta os dados salvos, o senhor deseja que o primeiro Notebook termine de ser executado antes de o segundo Notebook começar. Você modela esses objetivos em um arquivo de configuração de pacote em seu projeto.
- Na raiz do diretório, crie o arquivo de configuração do pacote, um arquivo chamado databricks.yml.
- Adicione o seguinte código ao arquivo databricks.yml, substituindo<workspace-url>pelo URLworkspace, por exemplo,https://1234567890123456.7.gcp.databricks.com. Esse URL deve corresponder ao do seu arquivo.databrickscfg:
A primeira linha, começando com # yaml-language-server, é necessária somente se seu IDE a suportar. 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: n2-highmem-4
            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 personalizar o trabalho, os mapeamentos em uma declaração de trabalho correspondem à carga útil da solicitação, expressa no formato YAML, das operações de criação de trabalho, conforme documentado em POST /api/2.1/Job/create na referência REST API .
Você pode definir, combinar e substituir as configurações de novos clusters de tarefas em pacotes usando as técnicas descritas em Substituir com configurações de destino.
Etapa 5: Validar o arquivo de configuração do pacote do projeto
Nesta etapa, você verifica se a configuração do pacote é válida.
- 
Use o endereço Databricks CLI para executar o comando bundle validate, como segue:Bashdatabricks bundle validate
- 
Se um resumo da configuração do pacote for retornado, a validação foi bem-sucedida. Se algum erro for retornado, corrija-o e repita essa etapa. 
Se você fizer alguma alteração em seu pacote após essa etapa, repita essa etapa para verificar se a configuração do pacote ainda é válida.
Etapa 6: implantar o projeto local no projeto remoto workspace
Nesta etapa, o senhor implanta os dois Notebooks locais no seu Databricks workspace remoto e cria o Job Databricks no seu workspace.
- 
Use o endereço Databricks CLI para executar o comando bundle deployda seguinte forma:Bashdatabricks bundle deploy -t development
- 
Verifique se os dois Notebooks locais foram implantados: Na barra lateral do site Databricks workspace, clique em workspace . 
- 
Clique na pasta Users > <your-username>> .bundle > baby-names > development > files . Os dois Notebooks devem estar nessa pasta.
- 
Verifique se o trabalho foi criado: Na barra lateral do site Databricks workspace, clique em Jobs & pipeline . 
- 
Opcionalmente, selecione os filtros Empregos e de minha propriedade . 
- 
Clique em retrieve-filter-baby-names-Job . 
- 
Clique na tarefa tab. Deve haver duas tarefas: retrieve-baby-names-tarefa e filter-baby-names-tarefa . 
Se você fizer alguma alteração em seu pacote após essa etapa, repita as etapas 6 a 7 para verificar se a configuração do pacote ainda é válida e, em seguida, reimplantar o projeto.
Etapa 7: execução do projeto implantado
Nesta passo, você executa o Job do Databricks em seu workspace.
- 
Use o endereço Databricks CLI para executar o comando bundle run, como segue:Bashdatabricks bundle run -t development retrieve-filter-baby-names-job
- 
Copie o valor de Run URLque aparece no terminal e cole-o no navegador da Web para abrir o site Databricks workspace.
- 
No site Databricks workspace, depois que as duas tarefas forem concluídas com êxito e mostrarem barras de título verdes, clique na tarefa filter-baby-names-tarefa para ver os resultados da consulta. 
Se fizer alguma alteração no pacote após essa etapa, repita as etapas 6 a 8 para verificar se a configuração do pacote ainda é válida, reimplante o projeto e execute o projeto reimplantado.
Etapa 8: limpar
Nesta passo, você exclui os dois Notebook implantados e o Job do seu workspace.
- 
Use o endereço Databricks CLI para executar o comando bundle destroy, como segue:Bashdatabricks bundle destroy
- 
Confirme a solicitação de exclusão do trabalho: Quando solicitado a destruir permanentemente o recurso, digite ye pressioneEnter.
- 
Confirme a solicitação de exclusão do Notebook: Quando solicitado a destruir permanentemente a pasta implantada anteriormente e todos os seus arquivos, digite ye pressioneEnter.
A execução do comando bundle destroy exclui apenas o Job implantado e a pasta que contém os dois Notebooks implantados. Esse 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:
- Na barra lateral do site Databricks workspace, clique em Catalog (Catálogo ).
- Clique em Browse DBFS .
- Clique na pasta FileStore .
- Clique na seta dropdown ao lado de babynames.csv , e clique em Excluir .
- Se você também quiser excluir o pacote da sua máquina de desenvolvimento, agora você pode excluir o diretório local da Etapa 1.