Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste tutorial, você criará um Pacote de Ativos do Databricks do zero. Esse pacote simples consiste em dois notebooks e na definição de um trabalho do Azure Databricks para executar esses notebooks. Em seguida, você validará, implantará e executará o trabalho implantado em seu workspace do Azure Databricks. Essas etapas automatizam o início rápido intitulado Criar seu primeiro fluxo de trabalho com Trabalhos do Lakeflow.
Requisitos
- CLI do Databricks 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. - Autenticação configurada para a CLI do Databricks. A autenticação U2M é apropriada para testar essas etapas em tempo real. Consulte Autenticação da CLI do Databricks.
- O workspace remoto do Databricks deve ter arquivos de workspace habilitados. Consulte O que são Arquivos de workspace?.
Etapa 1: 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.
- Crie ou identifique um diretório vazio em sua máquina de desenvolvimento.
- Alterne para o diretório vazio no terminal ou abra-o no IDE.
Dica
Você também pode usar um diretório que contenha um repositório clonado de 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 de TI em seu projeto.
Se você optar por clonar um repositório para essa 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 poderão ser sincronizados desnecessariamente com seu workspace do Azure Databricks.
Etapa 2: adicionar blocos de anotações ao projeto
Nesta etapa, você adiciona dois blocos de anotações ao seu projeto. O primeiro bloco de anotações obtém uma lista dos nomes de bebês mais populares desde 2007 das fontes de dados públicas do Departamento de Saúde do Estado de Nova York. Consulte Nomes de Bebês: Tendência por Nome: a partir de 2007 no site do departamento. Depois, o primeiro notebook salva esses dados no volume do Catálogo do Azure Databricks Unity chamado my-volume em um esquema chamado default dentro de um catálogo chamado main. O segundo bloco de anotações consulta os dados salvos e exibe contagens agregadas dos nomes dos bebês por nome e sexo para 2014.
Na raiz do diretório, crie o primeiro bloco de anotações, um arquivo chamado
retrieve-baby-names.py.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/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 bloco de anotações, um arquivo chamado
filter-baby-names.py, no mesmo diretório.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("/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 de pacote ao projeto
Se você estiver usando um IDE como Visual Studio Code, PyCharm Professional ou IntelliJ IDEA Ultimate que dê suporte a arquivos YAML e arquivos de esquema JSON, você poderá usar o IDE para não apenas criar o arquivo de esquema de configuração de pacote, mas verificar a sintaxe e a formatação do arquivo de configuração do pacote do projeto.
Visual Studio Code
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 JSON de configuração do Pacote de Ativos do Databricks usando a CLI do Databricks para executar o comando
bundle schemae redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.jsonno diretório atual, da seguinte maneira:databricks bundle schema > bundle_config_schema.jsonNa Etapa 4, você adicionará o seguinte comentário ao início do arquivo de configuração do pacote, que associa seu arquivo de configuração de pacote ao arquivo de esquema JSON especificado:
# yaml-language-server: $schema=bundle_config_schema.jsonObservação
No comentário anterior, se o arquivo de esquema JSON de configuração do Pacote de Ativos do Databricks estiver em um caminho diferente, substitua
bundle_config_schema.jsonpelo caminho completo para o arquivo de esquema.
PyCharm Professional
Gere o arquivo de esquema JSON de configuração do Pacote de Ativos do Databricks usando a CLI do Databricks para executar o comando
bundle schemae redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.jsonno diretório atual, da seguinte maneira:databricks bundle schema > bundle_config_schema.jsonConfigure o PyCharm para reconhecer o arquivo de esquema JSON de configuração de pacote e conclua o mapeamento de esquema JSON seguindo as instruções em Configurar um esquema JSON personalizado.
Na Etapa 4, você usará o PyCharm para criar ou abrir um arquivo de configuração de pacote. Por convenção, esse arquivo é nomeado
databricks.yml.
IntelliJ IDEA Ultimate (Edição Premium)
Gere o arquivo de esquema JSON de configuração do Pacote de Ativos do Databricks usando a CLI do Databricks para executar o comando
bundle schemae redirecionar a saída para um arquivo JSON. Por exemplo, gere um arquivo chamadobundle_config_schema.jsonno diretório atual, da seguinte maneira:databricks bundle schema > bundle_config_schema.jsonConfigure o IntelliJ IDEA para reconhecer o arquivo de esquema JSON de configuração de pacote e conclua o mapeamento de esquema JSON seguindo as instruções em Configurar um esquema JSON personalizado.
Na Etapa 4, você usará o IntelliJ IDEA para criar ou abrir um arquivo de configuração de pacote. Por convenção, esse arquivo é nomeado
databricks.yml.
Etapa 4: Adicionar um arquivo de configuração de pacote ao projeto
Nesta etapa, você define como implantar e executar os dois notebooks. Para esta demonstração, você deseja usar um trabalho do Azure Databricks para executar o primeiro bloco de anotações e, em seguida, o segundo bloco de anotações. Como o primeiro bloco de anotações salva os dados e o segundo bloco de anotações consulta os dados salvos, você deseja que o primeiro bloco de anotações termine de ser executado antes que o segundo bloco de anotações seja iniciado. Você modela esses objetivos em um arquivo de configurações 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>pela URL por espaço de trabalho, por exemplo,https://adb-1234567890123456.7.azuredatabricks.net. Essa URL deve corresponder à do arquivo.databrickscfg:
Dica
A primeira linha, começando com # yaml-language-server, será necessária somente se o IDE der suporte a ela. Consulte a Etapa 3 anteriormente 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: Standard_DS3_v2
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 trabalhos, os mapeamentos em uma declaração de trabalho correspondem ao conteúdo de solicitação, expressa em YAML, da operação de criação de trabalho, conforme documentado em POST /api/2.1/jobs/create na referência da API REST.
Dica
Você pode definir, combinar e substituir as configurações de novos clusters de trabalho em pacotes usando as técnicas descritas em Substituição com as configurações de destino.
Etapa 5: Validar o arquivo de configuração do pacote do projeto
Nesta etapa, você verificará se a configuração do pacote é válida.
Use a CLI do Databricks para executar o comando
bundle validateda seguinte maneira:databricks bundle validateSe um resumo da configuração do pacote for retornado, então a validação foi bem-sucedida. Se algum erro for retornado, corrija-os e repita essa etapa.
Se você fizer quaisquer alterações em seu pacote após essa etapa, deverá repetir essa etapa para verificar se a configuração do pacote ainda é válida.
Etapa 6: Implantar o projeto local no workspace remoto
Nesta etapa, você implanta os dois blocos de anotações locais em seu espaço de trabalho remoto do Azure Databricks e cria o trabalho do Azure Databricks em seu espaço de trabalho.
Use a CLI do Databricks para executar o comando
bundle deployda seguinte maneira:databricks bundle deploy -t developmentVerifique se os dois notebooks locais foram implantados: na barra lateral do workspace do Azure Databricks, clique em Workspace.
Clique até chegar na pasta Usuários >
<your-username>> .bundle > baby-names > development > files. Os dois blocos de anotações devem estar nesta pasta.Verifique se o trabalho foi criado: na barra lateral do workspace do Azure Databricks, clique em Trabalhos &pipelines.
Opcionalmente, selecione os filtros Trabalhos e Propriedade minha .
Clique em retrieve-filter-baby-names-job.
Clique na guia Tarefas. Deve haver duas tarefas: retrieve-baby-names-task e filter-baby-names-task.
Se você fizer todas as alterações em seu pacote após esta etapa, deverá repetir as etapas 6 a 7 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 workspace.
Use a CLI do Databricks para executar o comando
bundle runda seguinte maneira:databricks bundle run -t development retrieve-filter-baby-names-jobCopie o valor de
Run URLque aparece em seu terminal e cole esse valor em seu navegador da Web para abrir seu workspace do Azure Databricks.No seu espaço de trabalho do Azure Databricks, depois que as duas tarefas forem concluídas com êxito e mostrarem barras de título verdes, clique na tarefa filter-baby-names-task para ver os resultados da consulta.
Se você fizer todas as alterações no pacote após esta etapa, deverá repetir as etapas de 6 a 8 para verificar se a configuração do pacote ainda é válida, reimplantar o projeto e executar o projeto reimplantado.
Etapa 8: Limpar
Nesta etapa, você exclui os dois notebooks implantados e o trabalho do seu workspace.
Use a CLI do Databricks para executar o comando
bundle destroyda seguinte maneira:databricks bundle destroyConfirme a solicitação de exclusão de trabalho: quando solicitado a destruir recursos permanentemente, digite
ye pressioneEnter.Confirme a solicitação de exclusão dos blocos de anotações: 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 trabalho implantado e a pasta que contém os dois blocos de anotações implantados. Esse comando não exclui efeitos colaterais, como o arquivo de babynames.csv que o primeiro bloco de anotações criou. Para excluir o arquivo babybnames.csv, faça o seguinte:
- Na barra lateral do seu workspace do Azure Databricks, clique em Catálogo.
- Clique em Procurar DBFS.
- Clique na pasta FileStore.
- Clique na seta suspensa ao lado de babynames.csv e clique em Excluir.
- Se você também quiser excluir o pacote do computador de desenvolvimento, agora poderá excluir o diretório local da Etapa 1.