Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku utworzysz pakiet zasobów usługi Databricks od podstaw. Ten prosty pakiet składa się z dwóch notatników i definicji zadania usługi Azure Databricks do uruchamiania tych notatników. Następnie należy zweryfikować, wdrożyć i uruchomić zadanie w obszarze roboczym usługi Azure Databricks. Te kroki automatyzują przewodnik o nazwie 'Szybki start' zatytułowany Tworzenie pierwszego przepływu pracy za pomocą zadań Lakeflow.
Wymagania
- Interfejs wiersza polecenia usługi Databricks w wersji 0.218.0 lub nowszej. Aby sprawdzić zainstalowaną wersję interfejsu wiersza polecenia usługi Databricks, uruchom polecenie
databricks -v. Aby zainstalować interfejs wiersza polecenia usługi Databricks, zobacz Instalowanie lub aktualizowanie interfejsu wiersza polecenia usługi Databricks. - Uwierzytelnianie skonfigurowane dla Databricks CLI. Uwierzytelnianie U2M jest odpowiednie do wypróbowania tych kroków w czasie rzeczywistym. Zobacz Uwierzytelnianie w wierszu poleceń usługi Databricks.
- Zdalny obszar roboczy Databricks musi mieć włączoną obsługę plików obszaru roboczego. Zobacz Czym są pliki obszaru roboczego?.
Krok 1. Tworzenie pakietu
Pakiet zawiera artefakty, które chcesz wdrożyć, oraz ustawienia zasobów, które chcesz uruchomić.
- Utwórz lub zidentyfikuj pusty katalog na maszynie dewelopera.
- Przejdź do pustego katalogu w terminalu lub otwórz go w środowisku IDE.
Napiwek
Możesz również użyć katalogu zawierającego repozytorium sklonowane z dostawcy usługi Git. Dzięki temu można zarządzać pakietem za pomocą zewnętrznej kontroli wersji i łatwiej współpracować z innymi deweloperami i specjalistami IT w projekcie.
Jeśli zdecydujesz się sklonować repozytorium na potrzeby tego pokazu, usługa Databricks zaleca, aby repozytorium było puste lub zawierało tylko podstawowe pliki, takie jak README i .gitignore. W przeciwnym razie wszystkie istniejące pliki w repozytorium mogą być niepotrzebnie synchronizowane z obszarem roboczym usługi Azure Databricks.
Krok 2. Dodawanie notesów do projektu
W tym kroku do projektu zostaną dodane dwa notesy. Pierwszy notes pobiera listę popularnych nazw dzieci od 2007 roku z publicznych źródeł danych Departamentu Zdrowia w Nowym Jorku. Zobacz Baby Names: Trending by Name: Beginning 2007 (Popularne według nazwy: początek 2007 ) na stronie internetowej działu. Następnie pierwszy notatnik zapisuje te dane w woluminie Azure Databricks Unity Catalog o nazwie my-volume w schemacie o nazwie default w katalogu o nazwie main. Drugi notes wysyła zapytanie do zapisanych danych i wyświetla zagregowane liczby nazwisk dziecka według imienia i płci w 2014 roku.
W katalogu głównym utwórz pierwszy notatnik zatytułowany
retrieve-baby-names.py.Dodaj następujący kod do pliku
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)Utwórz drugi notes o nazwie
filter-baby-names.py, w tym samym katalogu.Dodaj następujący kod do pliku
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")))
Krok 3. Dodawanie pliku schematu konfiguracji pakietu do projektu
Jeśli używasz środowiska IDE, takiego jak Visual Studio Code, PyCharm Professional lub IntelliJ IDEA Ultimate, które obsługuje pliki YAML i pliki schematu JSON, możesz użyć środowiska IDE, aby nie tylko utworzyć plik schematu konfiguracji pakietu, ale także sprawdzić składnię i formatowanie pliku konfiguracji pakietu projektu.
Visual Studio Code
Dodaj obsługę serwera języka YAML do programu Visual Studio Code, na przykład przez zainstalowanie rozszerzenia YAML z witryny Visual Studio Code Marketplace.
Aby wygenerować plik schematu JSON konfiguracji pakietu zasobów Databricks, użyj interfejsu wiersza polecenia Databricks do uruchomienia polecenia
bundle schemai przekieruj dane wyjściowe do pliku JSON. Na przykład wygeneruj plik o nazwiebundle_config_schema.jsonw bieżącym katalogu w następujący sposób:databricks bundle schema > bundle_config_schema.jsonW kroku 4 dodasz następujący komentarz na początku pliku konfiguracji pakietu, który kojarzy plik konfiguracji pakietu z określonym plikiem schematu JSON:
# yaml-language-server: $schema=bundle_config_schema.jsonUwaga
W poprzednim komentarzu, jeśli plik schematu JSON konfiguracji pakietu zasobów usługi Databricks znajduje się w innej ścieżce, zastąp
bundle_config_schema.jsonpełną ścieżką do pliku schematu.
PyCharm Professional
Wygeneruj plik schematu JSON konfiguracji pakietu zasobów Databricks przy użyciu Databricks CLI, uruchamiając polecenie
bundle schemai przekierowując dane wyjściowe do pliku JSON. Na przykład wygeneruj plik o nazwiebundle_config_schema.jsonw bieżącym katalogu w następujący sposób:databricks bundle schema > bundle_config_schema.jsonSkonfiguruj narzędzie PyCharm do rozpoznawania pliku schematu JSON konfiguracji pakietu, a następnie ukończ mapowanie schematu JSON, postępując zgodnie z instrukcjami w temacie Konfigurowanie niestandardowego schematu JSON.
W kroku 4 użyjesz narzędzia PyCharm do utworzenia lub otwarcia pliku konfiguracji pakietu. Zgodnie z konwencją ten plik ma nazwę
databricks.yml.
IntelliJ IDEA Ultimate
Aby wygenerować plik schematu JSON konfiguracji pakietu zasobów Databricks, użyj interfejsu wiersza polecenia Databricks do uruchomienia polecenia
bundle schemai przekieruj dane wyjściowe do pliku JSON. Na przykład wygeneruj plik o nazwiebundle_config_schema.jsonw bieżącym katalogu w następujący sposób:databricks bundle schema > bundle_config_schema.jsonSkonfiguruj środowisko IntelliJ IDEA do rozpoznawania pliku schematu JSON konfiguracji pakietu, a następnie ukończ mapowanie schematu JSON, postępując zgodnie z instrukcjami w temacie Konfigurowanie niestandardowego schematu JSON.
W kroku 4 użyjesz środowiska IntelliJ IDEA do utworzenia lub otwarcia pliku konfiguracji pakietu. Zgodnie z konwencją ten plik ma nazwę
databricks.yml.
Krok 4. Dodawanie pliku konfiguracji pakietu do projektu
W tym kroku zdefiniujesz, jak wdrażać i uruchamiać dwa notatniki. Na potrzeby tego pokazu chcesz użyć zadania usługi Azure Databricks do uruchomienia pierwszego notesu, a następnie drugiego notesu. Ponieważ pierwszy notes zapisuje dane, a drugi notes wysyła zapytanie do zapisanych danych, chcesz, aby pierwszy notes zakończył działanie przed uruchomieniem drugiego notesu. Te cele modelujesz w pliku konfiguracji pakietu w projekcie.
- W katalogu głównym utwórz plik konfiguracji pakietu o nazwie
databricks.yml. - Dodaj następujący kod do pliku
databricks.yml, zastępując<workspace-url>Twoim adresem URL dla obszaru roboczego, na przykład . Ten adres URL musi być zgodny z adresem w.databrickscfgpliku:
Napiwek
Pierwszy wiersz, rozpoczynający się od # yaml-language-server, jest wymagany tylko wtedy, gdy środowisko IDE go obsługuje. Aby uzyskać szczegółowe informacje, zobacz Krok 3 wcześniej.
# 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>
W przypadku dostosowywania zadań mapowania w deklaracji zadania odpowiadają ładunkowi żądania wyrażonemu w formacie YAML operacji tworzenia zadania zgodnie z opisem w dokumencie POST /api/2.1/jobs/create w dokumentacji interfejsu API REST.
Napiwek
Ustawienia nowych klastrów zadań w pakietach można definiować, łączyć i zastępować przy użyciu technik opisanych w temacie Zastępowanie z ustawieniami docelowymi.
Krok 5. Weryfikowanie pliku konfiguracji pakietu projektu
W tym kroku sprawdzisz, czy konfiguracja pakietu jest prawidłowa.
Użyj interfejsu wiersza poleceń Databricks, aby uruchomić polecenie
bundle validatew następujący sposób:databricks bundle validateJeśli zostanie zwrócone podsumowanie konfiguracji pakietu, walidacja zakończyła się pomyślnie. Jeśli zostaną zwrócone jakiekolwiek błędy, napraw błędy, a następnie powtórz ten krok.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, należy powtórzyć ten krok, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa.
Krok 6. Wdrażanie projektu lokalnego w zdalnym obszarze roboczym
W tym kroku wdrożysz dwa lokalne notesy do zdalnego obszaru roboczego platformy Azure Databricks i utworzysz zadanie platformy Azure Databricks w swoim obszarze roboczym.
Użyj interfejsu wiersza poleceń Databricks, aby uruchomić polecenie
bundle deployw następujący sposób:databricks bundle deploy -t developmentSprawdź, czy wdrożono dwa lokalne notesy: na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Obszar roboczy.
Kliknij do folderu Users >
<your-username>> .bundle > baby-names > development > files. Dwa notesy powinny znajdować się w tym folderze.Sprawdź, czy zadanie zostało utworzone: kliknij pozycję Zadania i potoki na pasku bocznym obszaru roboczego usługi Azure Databricks.
Opcjonalnie wybierz filtry Zadania i Należące do mnie .
Kliknij retrieve-filter-baby-names-job.
Kliknij kartę Zadania . Powinny istnieć dwa zadania: retrieve-baby-names-task i filter-baby-names-task.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 6 do 7, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, a następnie ponownie wdrożyć projekt.
Krok 7. Uruchamianie wdrożonego projektu
W tym kroku uruchomisz zadanie usługi Azure Databricks w obszarze roboczym.
Użyj interfejsu wiersza poleceń Databricks, aby uruchomić polecenie
bundle runw następujący sposób:databricks bundle run -t development retrieve-filter-baby-names-jobSkopiuj wartość
Run URLwyświetlaną w terminalu i wklej tę wartość w przeglądarce internetowej, aby otworzyć obszar roboczy usługi Azure Databricks.W obszarze roboczym usługi Azure Databricks, po pomyślnym zakończeniu dwóch zadań, które mają zielone paski tytułu, kliknij zadanie filter-baby-names-task, aby wyświetlić wyniki zapytania.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 6 do 8, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, ponownie wdróż projekt i uruchom ponownie wdrożony projekt.
Krok 8. Czyszczenie
W tym kroku usuniesz dwa wdrożone notesy i zadanie z obszaru roboczego.
Użyj interfejsu wiersza poleceń Databricks, aby uruchomić polecenie
bundle destroyw następujący sposób:databricks bundle destroyPotwierdź żądanie usunięcia zadania: po wyświetleniu monitu o trwałe zniszczenie zasobów wpisz
yi naciśnijEnter.Potwierdź żądanie usunięcia notesów: po wyświetleniu monitu o trwałe zniszczenie wcześniej wdrożonego folderu i wszystkich jego plików wpisz
yi naciśnijEnter.
bundle destroy Uruchomienie polecenia powoduje usunięcie tylko wdrożonego zadania i folderu zawierającego dwa wdrożone notesy. To polecenie nie usuwa żadnych skutków ubocznych, takich jak plik babynames.csv, który został utworzony przez pierwszy notes. Aby usunąć babybnames.csv plik, wykonaj następujące czynności:
- Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Wykaz.
- Kliknij pozycję Przeglądaj system plików DBFS.
- Kliknij folder FileStore .
- Kliknij strzałkę listy rozwijanej obok pozycjibabynames.csv, a następnie kliknij przycisk Usuń.
- Jeśli chcesz również usunąć pakiet z komputera dewelopera, możesz teraz usunąć katalog lokalny z kroku 1.