Sdílet prostřednictvím


Ruční vytvoření sady

V tomto kurzu vytvoříte sadu prostředků Databricks úplně od začátku. Tato jednoduchá sada obsahuje dva poznámkové bloky a definici úlohy Azure Databricks pro spuštění těchto poznámkových bloků. Pak ověříte, nasadíte a spustíte úlohu v pracovním prostoru Azure Databricks. Tento postup automatizuje rychlý start s názvem Vytvoření prvního pracovního postupu pomocí úloh Lakeflow.

Požadavky

  • Databricks CLI verze 0.218.0 nebo vyšší. Pokud chcete zkontrolovat nainstalovanou verzi rozhraní příkazového řádku Databricks, spusťte příkaz databricks -v. Pokud chcete nainstalovat rozhraní příkazového řádku Databricks, přečtěte si téma Instalace nebo aktualizace rozhraní příkazového řádku Databricks.
  • Ověřování nakonfigurované pro rozhraní příkazového řádku Databricks Ověřování U2M je vhodné pro vyzkoušení těchto kroků v reálném čase. Viz Ověřování pro Databricks CLI.
  • Vzdálený pracovní prostor Databricks musí mít povolené soubory pracovního prostoru. Podívejte se na Co jsou soubory pracovního prostoru?

Krok 1: Vytvoření sady

Sada obsahuje artefakty, které chcete nasadit, a nastavení pro prostředky, které chcete spustit.

  1. Vytvořte nebo identifikujte prázdný adresář na vývojovém počítači.
  2. Přepněte do prázdného adresáře v terminálu nebo ho otevřete v integrovaném vývojovém prostředí ( IDE).

Návod

Můžete také použít adresář obsahující úložiště naklonované od poskytovatele Gitu. To vám umožní spravovat sadu s externí správou verzí a snadněji spolupracovat s dalšími vývojáři a odborníky v OBLASTI IT na vašem projektu.

Pokud se rozhodnete naklonovat úložiště pro tuto ukázku, Databricks doporučuje, aby úložiště bylo prázdné nebo obsahuje pouze základní soubory, například README a .gitignore. Jinak se všechny existující soubory v úložišti můžou zbytečně synchronizovat s pracovním prostorem Azure Databricks.

Krok 2: Přidání poznámkových bloků do projektu

V tomto kroku přidáte do projektu dva poznámkové bloky. První poznámkový blok získá seznam trendujících jmen dětí od roku 2007 z veřejných datových zdrojů ministerstva zdravotnictví státu New York. Viz Jména dětí: Trendy podle jména: Od roku 2007 na webových stránkách oddělení. První poznámkový blok pak uloží tato data do svazku Azure Databricks Unity Catalog pojmenovaného my-volume ve schématu default v katalogu nazvaném main. Druhý poznámkový blok se dotazuje na uložená data a zobrazí agregované počty jmen dítěte podle křestního jména a pohlaví pro 2014.

  1. V kořenovém adresáři vytvořte první poznámkový blok s názvem retrieve-baby-names.py.

  2. Do souboru retrieve-baby-names.py přidejte následující kód:

    # 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)
    
  3. Ve stejném adresáři vytvořte druhý poznámkový blok s názvem soubor s názvem filter-baby-names.py.

  4. Do souboru filter-baby-names.py přidejte následující kód:

    # 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")))
    

Krok 3: Přidání souboru schématu konfigurace sady do projektu

Pokud používáte integrované vývojové prostředí (IDE), jako je Visual Studio Code, PyCharm Professional nebo IntelliJ IDEA Ultimate, které podporuje soubory YAML a soubory schématu JSON, můžete pomocí integrovaného vývojového prostředí (IDE) nejen vytvořit soubor schématu konfigurace sady prostředků, ale zkontrolovat syntaxi a formátování konfiguračního souboru balíčku projektu.

Visual Studio Code

  1. Přidejte podporu jazykového serveru YAML do editoru Visual Studio Code, například instalací rozšíření YAML z webu Visual Studio Code Marketplace.

  2. Vygenerujte konfigurační soubor schématu JSON sady prostředků Databricks pomocí rozhraní příkazového řádku Databricks a spusťte bundle schema příkaz a přesměrujte výstup do souboru JSON. Například vygenerujte soubor pojmenovaný bundle_config_schema.json v aktuálním adresáři následujícím způsobem:

    databricks bundle schema > bundle_config_schema.json
    
  3. V kroku 4 přidáte následující komentář na začátek konfiguračního souboru sady, který přidruží konfigurační soubor sady k zadanému souboru schématu JSON:

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

    Poznámka:

    Pokud je ve vašem předchozím komentáři soubor schématu JSON pro konfiguraci balíčku Databricks umístěn v jiné cestě, nahraďte bundle_config_schema.json úplnou cestou k souboru schématu.

PyCharm Professional

  1. Vygenerujte konfigurační soubor schématu JSON sady prostředků Databricks pomocí rozhraní příkazového řádku Databricks a spusťte bundle schema příkaz a přesměrujte výstup do souboru JSON. Například vygenerujte soubor pojmenovaný bundle_config_schema.json v aktuálním adresáři následujícím způsobem:

    databricks bundle schema > bundle_config_schema.json
    
  2. Nakonfigurujte PyCharm tak, aby rozpoznal soubor s konfiguračním schématem JSON pro sady, a poté dokončete mapování schématu JSON podle pokynů v Konfigurace vlastního schématu JSON.

  3. V kroku 4 použijete PyCharm k vytvoření nebo otevření konfiguračního souboru sady. Podle konvence má tento soubor název databricks.yml.

IntelliJ IDEA Ultimate

  1. Vygenerujte konfigurační soubor schématu JSON sady prostředků Databricks pomocí rozhraní příkazového řádku Databricks a spusťte bundle schema příkaz a přesměrujte výstup do souboru JSON. Například vygenerujte soubor pojmenovaný bundle_config_schema.json v aktuálním adresáři následujícím způsobem:

    databricks bundle schema > bundle_config_schema.json
    
  2. Nakonfigurujte IntelliJ IDEA tak, aby rozpoznala konfigurační soubor schématu JSON, a poté dokončete mapování tohoto schématu JSON podle pokynů v části Konfigurace vlastního schématu JSON.

  3. V kroku 4 použijete IntelliJ IDEA k vytvoření nebo otevření konfiguračního souboru sady. Podle konvence má tento soubor název databricks.yml.

Krok 4: Přidání konfiguračního souboru sady do projektu

V tomto kroku definujete, jak tyto dva poznámkové bloky nasadit a spustit. Pro tuto ukázku chcete použít úlohu Azure Databricks ke spuštění prvního poznámkového bloku a potom druhého poznámkového bloku. Protože první poznámkový blok ukládá data a druhý poznámkový blok se dotazuje na uložená data, chcete, aby první poznámkový blok byl dokončen před spuštěním druhého poznámkového bloku. Tyto cíle modelujete v konfiguračním souboru sady v projektu.

  1. V kořenovém adresáři vytvořte konfigurační soubor sady s názvem databricks.yml.
  2. Do souboru databricks.yml přidejte následující kód a nahraďte <workspace-url> vaší adresou URL pro pracovní prostor, například . Tato adresa URL se musí shodovat s adresou URL v .databrickscfg souboru:

Návod

První řádek, počínaje # yaml-language-server, je vyžadován pouze v případě, že vaše integrované vývojové prostředí (IDE) ho podporuje. Podrobnosti najdete v kroku 3 výše.

# 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>

Pro přizpůsobení úloh mapování v deklaraci úlohy odpovídají nákladu požadavku vyjádřenému ve formátu YAML operace vytvoření úlohy, jak je uvedeno v POST /api/2.1/jobs/create v odkazu v dokumentaci REST API.

Návod

Nastavení nových clusterů úloh v balíčcích můžete definovat; kombinovat a přepsat pomocí technik popsaných v části Přepsání pomocí cílových nastavení.

Krok 5: Ověření konfiguračního souboru sady projektu

V tomto kroku zkontrolujete, jestli je konfigurace sady platná.

  1. Pomocí rozhraní příkazového řádku Databricks spusťte bundle validate příkaz následujícím způsobem:

    databricks bundle validate
    
  2. Pokud se vrátí souhrn konfigurace sady, ověření proběhlo úspěšně. Pokud se vrátí nějaké chyby, opravte chyby a opakujte tento krok.

Pokud po tomto kroku provedete nějaké změny sady, měli byste tento krok zopakovat a zkontrolovat, jestli je konfigurace sady stále platná.

Krok 6: Nasazení místního projektu do vzdáleného pracovního prostoru

V tomto kroku nasadíte dva místní poznámkové bloky do vzdáleného pracovního prostoru Azure Databricks a vytvoříte úlohu Azure Databricks ve vašem pracovním prostoru.

  1. Pomocí rozhraní příkazového řádku Databricks spusťte bundle deploy příkaz následujícím způsobem:

    databricks bundle deploy -t development
    
  2. Zkontrolujte, jestli byly nasazeny dva místní poznámkové bloky: Na bočním panelu pracovního prostoru Azure Databricks klikněte na Pracovní prostor.

  3. Klikněte do složky Users ><your-username>> .bundle > baby-names > development > files. Tyto dva poznámkové bloky by měly být v této složce.

  4. Zkontrolujte, jestli se úloha vytvořila: Na bočním panelu pracovního prostoru Azure Databricks klikněte na Úlohy a kanály.

  5. Volitelně můžete vybrat filtry Práce a Vlastním.

  6. Klikněte na retrieve-filter-baby-names-job.

  7. Klikněte na kartu Úkoly . Měly by existovat dva úkoly: načtení jmen dětí a filtrování názvů dětí – úkol.

Pokud po tomto kroku provedete nějaké změny v sadě, měli byste zopakovat kroky 6 až 7, abyste zkontrolovali, jestli je konfigurace sady stále platná, a pak projekt znovu nasaďte.

Krok 7: Spuštění nasazeného projektu

V tomto kroku spustíte úlohu Azure Databricks ve svém pracovním prostoru.

  1. Pomocí rozhraní příkazového řádku Databricks spusťte bundle run příkaz následujícím způsobem:

    databricks bundle run -t development retrieve-filter-baby-names-job
    
  2. Zkopírujte hodnotu Run URL, která se zobrazí v terminálu, a vložte ji do webového prohlížeče, abyste otevřeli pracovní prostor Azure Databricks.

  3. Ve vašem pracovním prostoru Azure Databricks klikněte na úkol filter-baby-names-task po úspěšném dokončení dvou úkolů a zobrazení zelených pruhů záhlaví a zobrazte výsledky dotazu.

Pokud po tomto kroku provedete nějaké změny sady, měli byste zopakovat kroky 6 až 8 a zkontrolovat, jestli je konfigurace sady stále platná, znovu nasaďte projekt a spusťte znovu nasazený projekt.

Krok 8: Vyčištění

V tomto kroku odstraníte dva nasazené poznámkové bloky a úlohu z pracovního prostoru.

  1. Pomocí rozhraní příkazového řádku Databricks spusťte bundle destroy příkaz následujícím způsobem:

    databricks bundle destroy
    
  2. Potvrďte žádost o odstranění úlohy: Po zobrazení výzvy k trvalému zničení prostředků zadejte y a stiskněte Enter.

  3. Potvrďte žádost o odstranění poznámkových bloků: Po zobrazení výzvy k trvalému zničení dříve nasazené složky a všech jejích souborů zadejte y a stiskněte Enter.

Spuštěním příkazu odstraníte bundle destroy jenom nasazenou úlohu a složku obsahující dva nasazené poznámkové bloky. Tento příkaz neodstraní žádné vedlejší účinky, například babynames.csv soubor, který vytvořil první poznámkový blok. Pokud chcete soubor odstranit babybnames.csv , postupujte takto:

  1. Na bočním panelu pracovního prostoru Azure Databricks klikněte na Katalog.
  2. Klikněte na Procházet DBFS.
  3. Klikněte na složku FileStore .
  4. Klikněte na šipku rozevíracího seznamu vedle babynames.csv a klikněte na Odstranit.
  5. Pokud chcete také odstranit sadu z vývojového počítače, můžete teď odstranit místní adresář z kroku 1.