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í úlohy Azure Databricks.

Požadavky

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).

Tip

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 populárních jmen dětí od roku 2007 z veřejných zdrojů dat ministerstva zdravotnictví v New Yorku. Viz Jména dítěte: Trend by Name: Začátek 2007 na webu oddělení. První poznámkový blok pak uloží tato data do svazku katalogu Azure Databricks Unity s názvem my-volume ve schématu default pojmenovaném v katalogu 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. Konfigurační soubor sady, který vytvoříte později v kroku 5, je založený na YAML, ale soubor schématu konfigurace sady v tomto kroku je založený na formátu JSON.

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 5 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 soubor schématu JSON konfigurace sady prostředků Databricks v předchozím komentáři 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 konfigurační soubor schématu JSON sady, a pak dokončete mapování schématu JSON podle pokynů v části Konfigurace vlastního schématu JSON.

  3. V kroku 5 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 rozpoznal konfigurační soubor schématu JSON sady a pak dokončil mapování schématu JSON podle pokynů v části Konfigurace vlastního schématu JSON.

  3. V kroku 5 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: Nastavení ověřování

V tomto kroku nastavíte ověřování mezi Rozhraním příkazového řádku Databricks na vývojovém počítači a pracovním prostorem Azure Databricks. Tento článek předpokládá, že chcete použít ověřování U2M (user-to-machine) OAuth a odpovídající konfigurační profil Azure Databricks s názvem DEFAULT ověřování.

Poznámka:

Ověřování U2M je vhodné pro vyzkoušení těchto kroků v reálném čase. Pro plně automatizované pracovní postupy doporučuje Databricks místo toho použít ověřování M2M (machine-to-machine). Viz pokyny k nastavení ověřování M2M v části Ověřování.

  1. Pomocí rozhraní příkazového řádku Databricks zahajte správu tokenů OAuth místně spuštěním následujícího příkazu pro každý cílový pracovní prostor.

    V následujícím příkazu nahraďte <workspace-url> adresou URL služby Azure Databricks pro jednotlivé pracovní prostory, například https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Rozhraní příkazového řádku Databricks vás vyzve k uložení informací, které jste zadali jako konfigurační profil Azure Databricks. Stisknutím klávesy Enter potvrďte navrhovaný název profilu nebo zadejte název nového nebo existujícího profilu. Všechny existující profily se stejným názvem se přepíšou informacemi, které jste zadali. Profily můžete použít k rychlému přepnutí kontextu ověřování napříč několika pracovními prostory.

    Pokud chcete získat seznam všech existujících profilů, v samostatném terminálu nebo příkazovém řádku spusťte příkaz databricks auth profilespomocí rozhraní příkazového řádku Databricks . Pokud chcete zobrazit existující nastavení konkrétního profilu, spusťte příkaz databricks auth env --profile <profile-name>.

  3. Ve webovém prohlížeči dokončete pokyny na obrazovce, abyste se přihlásili k pracovnímu prostoru Azure Databricks.

  4. Pokud chcete zobrazit aktuální hodnotu tokenu OAuth profilu a nadcházející časové razítko vypršení platnosti tokenu, spusťte jeden z následujících příkazů:

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

    Pokud máte více profilů se stejnou --host hodnotou, možná budete muset zadat --host společně možnosti a -p pomoct rozhraní příkazového řádku Databricks najít správné odpovídající informace o tokenu OAuth.

Krok 5: 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 přidejte následující kód databricks.yml a nahraďte <workspace-url> ho adresou URL pracovního prostoru, například https://adb-1234567890123456.7.azuredatabricks.net. Tato adresa URL se musí shodovat s adresou URL v .databrickscfg souboru:

Tip

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í datové části požadavku vyjádřené ve formátu YAML operace vytvoření úlohy popsané v post /api/2.1/jobs/create v odkazu na rozhraní REST API.

Tip

Nastavení nových clusterů úloh v balíčcích můžete definovat, kombinovat a přepsat pomocí technik popsaných v nastavení clusteru v sadě prostředků Databricks.

Krok 6: Ověření konfiguračního souboru sady projektů

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 7: 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 Vývojové soubory Users >><your-username>.bundle > pro názvy > > dětí. Tyto dva poznámkové bloky by měly být v této složce.

  4. Zkontrolujte, jestli byla úloha vytvořená: Na bočním panelu pracovního prostoru Azure Databricks klikněte na Pracovní postupy.

  5. Na kartě Úlohy klikněte na retrieve-filter-baby-names-job.

  6. 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 8: 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, která se zobrazí v terminálu, a vložte ji do webového Run URL prohlížeče, aby se otevřel pracovní prostor Azure Databricks.

  3. Po úspěšném dokončení dvou úkolů a zobrazení zelených záhlaví v pracovním prostoru Azure Databricks klikněte na úkol úkolu filtru-baby-names-task 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 9: 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.