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
- 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 Viz Ověřování pro rozhraní příkazového řádku Databricks.
- Vzdálený pracovní prostor Databricks musí mít povolené soubory pracovního prostoru. Podívejte se, 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.
- Vytvořte nebo identifikujte prázdný adresář na vývojovém počítači.
- 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.
V kořenovém adresáři vytvořte první poznámkový blok s názvem
retrieve-baby-names.py
.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)
Ve stejném adresáři vytvořte druhý poznámkový blok s názvem soubor s názvem
filter-baby-names.py
.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
Přidejte podporu jazykového serveru YAML do editoru Visual Studio Code, například instalací rozšíření YAML z webu Visual Studio Code Marketplace.
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
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
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
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.
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
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
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.
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í.
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říkladhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
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 profiles
pomocí rozhraní příkazového řádku Databricks . Pokud chcete zobrazit existující nastavení konkrétního profilu, spusťte příkazdatabricks auth env --profile <profile-name>
.Ve webovém prohlížeči dokončete pokyny na obrazovce, abyste se přihlásili k pracovnímu prostoru Azure Databricks.
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.
- V kořenovém adresáři vytvořte konfigurační soubor sady s názvem
databricks.yml
. - Do souboru přidejte následující kód
databricks.yml
a nahraďte<workspace-url>
ho adresou URL pracovního prostoru, napříkladhttps://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á.
Pomocí rozhraní příkazového řádku Databricks spusťte
bundle validate
příkaz následujícím způsobem:databricks bundle validate
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.
Pomocí rozhraní příkazového řádku Databricks spusťte
bundle deploy
příkaz následujícím způsobem:databricks bundle deploy -t development
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.
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.Zkontrolujte, jestli byla úloha vytvořená: Na bočním panelu pracovního prostoru Azure Databricks klikněte na Pracovní postupy.
Na kartě Úlohy klikněte na retrieve-filter-baby-names-job.
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.
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
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.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.
Pomocí rozhraní příkazového řádku Databricks spusťte
bundle destroy
příkaz následujícím způsobem:databricks bundle destroy
Potvrďte žádost o odstranění úlohy: Po zobrazení výzvy k trvalému zničení prostředků zadejte
y
a stiskněteEnter
.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ěteEnter
.
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:
- Na bočním panelu pracovního prostoru Azure Databricks klikněte na Katalog.
- Klikněte na Procházet DBFS.
- Klikněte na složku FileStore .
- Klikněte na šipku rozevíracího seznamu vedle babynames.csv a klikněte na Odstranit.
- Pokud chcete také odstranit sadu z vývojového počítače, můžete teď odstranit místní adresář z kroku 1.