Opracowywanie kodu w notesach usługi Databricks

Na tej stronie opisano sposób tworzenia kodu w notesach usługi Databricks, w tym autouzupełniania, automatycznego formatowania języków Python i SQL, łączenia języków Python i SQL w notesie oraz śledzenia historii wersji notesu.

Aby uzyskać więcej informacji na temat zaawansowanych funkcji dostępnych w edytorze, takich jak autouzupełnianie, wybór zmiennych, obsługa wielu kursorów i różnice równoległe, zobacz Używanie notesu i edytora plików usługi Databricks.

Gdy używasz notesu lub edytora plików, asystent usługi Databricks jest dostępny, aby ułatwić generowanie, objaśnienie i debugowanie kodu. Aby uzyskać więcej informacji, zobacz Use Databricks Assistant (Korzystanie z asystenta usługi Databricks).

Notesy usługi Databricks obejmują również wbudowany interaktywny debuger notesów języka Python. Zobacz Używanie interaktywnego debugera usługi Databricks.

Uzyskiwanie pomocy dotyczącej kodowania z poziomu asystenta usługi Databricks

Asystent usługi Databricks to asystent sztucznej inteligencji z obsługą kontekstu, z którym można korzystać przy użyciu interfejsu konwersacyjnego, co zwiększa produktywność w usłudze Databricks. Możesz opisać zadanie w języku angielskim i pozwolić asystentowi wygenerować kod języka Python lub zapytania SQL, wyjaśnić złożony kod i automatycznie naprawić błędy. Asystent używa metadanych wykazu aparatu Unity do zrozumienia tabel, kolumn, opisów i popularnych zasobów danych w całej firmie w celu zapewnienia spersonalizowanych odpowiedzi.

Asystent usługi Databricks może pomóc w wykonaniu następujących zadań:

  • Generowanie kodu.
  • Debugowanie kodu, w tym identyfikowanie i sugerowanie poprawek błędów.
  • Przekształcanie i optymalizowanie kodu.
  • Wyjaśnienie kodu.
  • Pomoc w znalezieniu odpowiednich informacji w dokumentacji usługi Azure Databricks.

Aby uzyskać informacje na temat korzystania z asystenta usługi Databricks, aby ułatwić wydajniejszy kod, zobacz Korzystanie z asystenta usługi Databricks. Aby uzyskać ogólne informacje na temat asystenta usługi Databricks, zobacz Funkcje obsługiwane przez usługę DatabricksIQ.

Dostęp do notesu do edycji

Aby otworzyć notes, użyj funkcji search obszaru roboczego lub użyj przeglądarki obszaru roboczego, aby przejść do notesu i kliknąć nazwę lub ikonę notesu.

Przeglądanie danych

Użyj przeglądarki schematu, aby eksplorować tabele i woluminy dostępne dla notesu. Kliknij ikona danych notesu po lewej stronie notesu, aby otworzyć przeglądarkę schematu.

Przycisk Za Ciebie wyświetla tylko te tabele, które zostały użyte w bieżącej sesji lub wcześniej oznaczone jako Ulubione.

Podczas wpisywania tekstu w polu Filtr ekran zmienia się, aby pokazywać tylko te elementy, które zawierają wpisany tekst. Wyświetlane są tylko elementy, które są obecnie otwarte lub zostały otwarte w bieżącej sesji. Pole Filtr nie wykonuje pełnego wyszukiwania wykazów, schematów i tabel dostępnych dla notesu.

Aby otworzyć Menu Kebab menu kebab, umieść kursor nad nazwą elementu, jak pokazano poniżej:

menu kebab w przeglądarce schematu

Jeśli element jest tabelą, możesz wykonać następujące czynności:

  • Automatycznie utwórz i uruchom komórkę, aby wyświetlić podgląd danych w tabeli. Wybierz pozycję Podgląd w nowej komórce z menu kebab dla tabeli.
  • Wyświetlanie wykazu, schematu lub tabeli w Eksploratorze wykazu. Wybierz pozycję Otwórz w Eksploratorze wykazu z menu kebab. Zostanie otwarta nowa karta z wybranym elementem.
  • Pobierz ścieżkę do katalogu, schematu lub tabeli. Wybierz pozycję Kopiuj... ścieżka z menu kebab dla elementu.
  • Dodaj tabelę do ulubionych. Wybierz pozycję Dodaj tabelę do ulubionych z menu kebab dla tabeli.

Jeśli element jest katalogiem, schematem lub woluminem, możesz skopiować ścieżkę elementu lub otworzyć go w Eksploratorze wykazu.

Aby wstawić nazwę tabeli lub kolumny bezpośrednio do komórki:

  1. Kliknij kursor w komórce w lokalizacji, w której chcesz wprowadzić nazwę.
  2. Przenieś kursor na nazwę tabeli lub nazwę kolumny w przeglądarce schematu.
  3. Kliknij podwójną strzałkę podwójna strzałkawyświetlaną po prawej stronie nazwy elementu.

Skróty klawiaturowe

Aby wyświetlić skróty klawiaturowe, wybierz pozycję Skróty klawiaturowe Pomocy>. Dostępne skróty klawiaturowe zależą od tego, czy kursor znajduje się w komórce kodu (tryb edycji), czy też nie (tryb polecenia).

Znajdowanie i zastępowanie tekstu

Aby znaleźć i zamienić tekst w notesie, wybierz pozycję Edytuj > znajdź i zamień. Bieżące dopasowanie jest wyróżnione kolorem pomarańczowym, a wszystkie inne dopasowania są wyróżnione kolorem żółtym.

Pasujący tekst

Aby zastąpić bieżące dopasowanie, kliknij przycisk Zamień. Aby zastąpić wszystkie dopasowania w notesie, kliknij przycisk Zamień wszystko.

Aby przejść między dopasowaniami, kliknij przyciski Prev i Next (Prev ) i Next (Dalej ). Możesz również nacisnąć klawisze shift+enter i wprowadzić , aby przejść odpowiednio do poprzednich i następnych dopasowań.

Aby zamknąć narzędzie znajdź i zamień, kliknij Usuń ikonę lub naciśnij klawisz esc.

Eksplorator zmiennych

Zmienne języka Python, Scala i R można obserwować bezpośrednio w interfejsie użytkownika notesu. W przypadku języka Python w środowisku Databricks Runtime 12.2 LTS lub nowszym zmienne są aktualizowane w miarę uruchamiania komórki. W przypadku języków Scala, R i Python w środowisku Databricks Runtime 11.3 LTS i nowszych zmienne są aktualizowane po zakończeniu działania komórki.

Aby otworzyć eksploratora zmiennych, kliknij ikona eksploratora zmiennychprawym paskiem bocznym. Zostanie otwarty Eksplorator zmiennych z wyświetloną wartością i typem danych, w tym kształtem dla każdej zmiennej, która jest obecnie zdefiniowana w notesie. (Kształt ramki danych PySpark to "?", ponieważ obliczanie kształtu może być kosztowne obliczenia).

Aby filtrować wyświetlanie, wprowadź tekst w polu wyszukiwania. Lista jest filtrowana automatycznie podczas wpisywania.

Wartości zmiennych są automatycznie aktualizowane podczas uruchamiania komórek notesu.

przykładowy panel eksploratora zmiennych

Uruchamianie zaznaczonych komórek

Można uruchomić pojedynczą komórkę lub kolekcję komórek. Aby wybrać pojedynczą komórkę, kliknij w dowolnym miejscu w komórce. Aby zaznaczyć wiele komórek, przytrzymaj Command klawisz w systemie MacOS lub Ctrl klucz w systemie Windows, a następnie kliknij komórkę poza obszarem tekstu, jak pokazano na zrzucie ekranu.

jak zaznaczyć wiele komórek

Aby uruchomić zaznaczone komórki, wybierz pozycję Uruchom > wybrane komórki.

Zachowanie tego polecenia zależy od klastra, do którego jest dołączony notes.

  • W klastrze z uruchomionym środowiskiem Databricks Runtime 13.3 LTS lub nowszym zaznaczone komórki są wykonywane indywidualnie. Jeśli w komórce wystąpi błąd, wykonanie będzie kontynuowane z kolejnymi komórkami.
  • W klastrze z uruchomionym środowiskiem Databricks Runtime 14.0 lub nowszym lub w usłudze SQL Warehouse wybrane komórki są wykonywane jako partia. Żaden błąd zatrzymuje wykonywanie i nie można anulować wykonywania poszczególnych komórek. Możesz użyć przycisku Przerwanie , aby zatrzymać wykonywanie wszystkich komórek.

Modularyzacja kodu

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

W środowisku Databricks Runtime 11.3 LTS i nowszym można tworzyć pliki kodu źródłowego i zarządzać nimi w obszarze roboczym usługi Azure Databricks, a następnie importować te pliki do notesów zgodnie z potrzebami.

Aby uzyskać więcej informacji na temat pracy z plikami kodu źródłowego, zobacz Udostępnianie kodu między notesami usługi Databricks i Praca z modułami python i R.

Uruchamianie zaznaczonego tekstu

Możesz wyróżnić kod lub instrukcje SQL w komórce notesu i uruchomić tylko to zaznaczenie. Jest to przydatne, gdy chcesz szybko iterować kod i zapytania.

  1. Wyróżnij wiersze, które chcesz uruchomić.

  2. Wybierz pozycję Uruchom wybrany tekst lub użyj skrótu klawiaturowego+Ctrl+ShiftEnter .> Jeśli żaden tekst nie zostanie wyróżniony, polecenie Uruchom zaznaczony tekst wykonuje bieżący wiersz.

    uruchamianie wybranych wierszy

Jeśli używasz języków mieszanych w komórce, musisz dołączyć %<language> wiersz do zaznaczenia.

Uruchomienie zaznaczonego tekstu spowoduje również wykonanie zwiniętego kodu, jeśli w wyróżnionym zaznaczeniu znajduje się jakikolwiek element.

Obsługiwane są specjalne polecenia komórek, takie jak %run, %pipi %sh .

Nie można użyć opcji Uruchom zaznaczony tekst w komórkach, które mają wiele kart wyjściowych (czyli komórek, w których zdefiniowano profil danych lub wizualizację).

Formatowanie komórek kodu

Usługa Azure Databricks udostępnia narzędzia, które umożliwiają szybkie i łatwe formatowanie kodu Python i SQL w komórkach notesu. Te narzędzia zmniejszają nakład pracy, aby zachować formatowanie kodu i pomóc w wymuszaniu tych samych standardów kodowania w notesach.

Formatowanie komórek języka Python

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Usługa Azure Databricks obsługuje formatowanie kodu w języku Python przy użyciu technologii Black w notesie. Notes musi być dołączony do klastra z zainstalowanymi pakietami i tokenize-rt pakietami black języka Python, a program do formatowania Black jest wykonywany w klastrze dołączonym do notesu.

W środowisku Databricks Runtime 11.3 LTS i nowszym preinstaluje black usługę Azure Databricks i tokenize-rt. Możesz użyć formatującego bezpośrednio bez konieczności instalowania tych bibliotek.

W środowisku Databricks Runtime 10.4 LTS i poniżej należy zainstalować black==22.3.0 interfejs PyPI w tokenize-rt==4.2.1 notesie lub klastrze, aby używać formatnika języka Python. W notesie można uruchomić następujące polecenie:

%pip install black==22.3.0 tokenize-rt==4.2.1

lub zainstaluj bibliotekę w klastrze.

Aby uzyskać więcej informacji na temat instalowania bibliotek, zobacz Zarządzanie środowiskiem języka Python.

W przypadku plików i notesów w folderach Usługi Git usługi Databricks można skonfigurować formater języka Python na pyproject.toml podstawie pliku. Aby użyć tej funkcji, utwórz pyproject.toml plik w katalogu głównym folderu Git i skonfiguruj go zgodnie z formatem konfiguracji Black. Edytuj sekcję [tool.black] w pliku . Konfiguracja jest stosowana podczas formatowania dowolnego pliku i notesu w tym folderze Git.

Jak sformatować komórki Python i SQL

Aby sformatować kod, musisz mieć uprawnienie CAN EDIT w notesie.

Formater można wyzwolić w następujący sposób:

  • Formatowanie pojedynczej komórki

    • Skrót klawiaturowy: naciśnij klawisze Cmd+Shift+F.
    • Menu kontekstowe polecenia:
      • Formatuj komórkę SQL: wybierz pozycję Formatuj sql w menu rozwijanym kontekstowym polecenia komórki SQL. Ten element menu jest widoczny tylko w komórkach notesu SQL lub w przypadku %sqlmagii języka.
      • Formatuj komórkę języka Python: wybierz pozycję Formatuj język Python w menu rozwijanym kontekstowym polecenia komórki języka Python. Ten element menu jest widoczny tylko w komórkach notesu języka Python lub w przypadku %pythonmagii języka.
    • Menu Edycja notesu: wybierz komórkę języka Python lub SQL, a następnie wybierz pozycję Edytuj > komórki formatu.
  • Formatowanie wielu komórek

    Zaznacz wiele komórek , a następnie wybierz pozycję Edytuj > komórki formatu. W przypadku zaznaczenia komórek więcej niż jednego języka sformatowane są tylko komórki SQL i Python. Obejmuje to te, które używają %sql i %python.

  • Formatowanie wszystkich komórek języka Python i SQL w notesie

    Wybierz pozycję Edytuj > notes formatu. Jeśli notes zawiera więcej niż jeden język, sformatowane są tylko komórki SQL i Python. Obejmuje to te, które używają %sql i %python.

Ograniczenia formatowania kodu

  • Czarny wymusza standardy PEP 8 dla wcięcia 4-spacji. Wcięcie nie jest konfigurowalne.
  • Formatowanie osadzonych ciągów języka Python wewnątrz funkcji zdefiniowanej przez użytkownika SQL nie jest obsługiwane. Podobnie formatowanie ciągów SQL wewnątrz funkcji zdefiniowanej przez użytkownika języka Python nie jest obsługiwane.

Historia wersji

Notesy usługi Azure Databricks utrzymują historię wersji notesu, umożliwiając wyświetlanie i przywracanie poprzednich migawek notesu. Następujące akcje można wykonać w wersjach: dodawanie komentarzy, przywracanie i usuwanie wersji oraz czyszczenie historii wersji.

Możesz również zsynchronizować swoją pracę w usłudze Databricks z zdalnym repozytorium Git.

Aby uzyskać dostęp do wersji notesu, kliknij ikona historii wersji prawym paskiem bocznym. Zostanie wyświetlona historia wersji notesu. Możesz również wybrać pozycję Historia wersji pliku>.

Dodaj komentarz

Aby dodać komentarz do najnowszej wersji:

  1. Kliknij wersję.

  2. Kliknij pozycję Zapisz teraz.

    Zapisz komentarz

  3. W oknie dialogowym Zapisywanie wersji notesu wprowadź komentarz.

  4. Kliknij przycisk Zapisz. Wersja notesu jest zapisywana z wprowadzonym komentarzem.

Przywróć wersję

Aby przywrócić wersję:

  1. Kliknij wersję.

  2. Kliknij pozycję Przywróć tę wersję.

    Przywracanie wersji

  3. Kliknij przycisk Potwierdź. Wybrana wersja staje się najnowszą wersją notesu.

Usuwanie wersji

Aby usunąć wpis wersji:

  1. Kliknij wersję.

  2. Kliknij ikonę Przenieś do Koszakosza.

    Usuń wersję

  3. Kliknij przycisk Tak, wymazaj. Wybrana wersja zostanie usunięta z historii.

Wyczyść historię wersji

Nie można odzyskać historii wersji po wyczyszczonej wersji.

Aby wyczyścić historię wersji notesu:

  1. Wybierz pozycję Plik > Wyczyść historię wersji.
  2. Kliknij przycisk Tak, wyczyść. Historia wersji notesu jest czyszczone.

Języki kodu w notesach

Ustawianie języka domyślnego

Domyślny język notesu jest wyświetlany obok nazwy notesu.

Domyślny język notesu

Aby zmienić język domyślny, kliknij przycisk języka i wybierz nowy język z menu rozwijanego. Aby upewnić się, że istniejące polecenia nadal działają, polecenia poprzedniego języka domyślnego są automatycznie prefiksowane za pomocą polecenia magic języka.

Mieszanie języków

Domyślnie komórki używają domyślnego języka notesu. Język domyślny można zastąpić w komórce, klikając przycisk języka i wybierając język z menu rozwijanego.

Lista rozwijana języka komórek

Alternatywnie możesz użyć polecenia %<language> magic języka na początku komórki. Obsługiwane polecenia magic to: %python, , %r%scalai %sql.

Uwaga

Po wywołaniu polecenia magic języka polecenie jest wysyłane do środowiska REPL w kontekście wykonywania notesu. Zmienne zdefiniowane w jednym języku (a tym samym w rePL dla tego języka) nie są dostępne w repl innego języka. Listy REPL mogą współużytkować stan tylko za pośrednictwem zasobów zewnętrznych, takich jak pliki w systemie plików DBFS lub obiektów w magazynie obiektów.

Notesy obsługują również kilka pomocniczych poleceń magic:

  • %sh: umożliwia uruchamianie kodu powłoki w notesie. Aby zakończyć działanie komórki, jeśli polecenie powłoki ma stan zakończenia innego niż zero, dodaj -e opcję . To polecenie jest uruchamiane tylko w sterowniku platformy Apache Spark, a nie na pracownikach. Aby uruchomić polecenie powłoki na wszystkich węzłach, użyj skryptu init.
  • %fs: umożliwia korzystanie z dbutils poleceń systemu plików. Aby na przykład uruchomić polecenie , dbutils.fs.ls aby wyświetlić listę plików, można określić %fs ls zamiast tego. Aby uzyskać więcej informacji, zobacz Praca z plikami w usłudze Azure Databricks.
  • %md: umożliwia dołączenie różnych typów dokumentacji, w tym tekstu, obrazów i formuł matematycznych oraz równań. Zobacz następną sekcję.

Wyróżnianie składni SQL i autouzupełnianie w poleceniach języka Python

Wyróżnianie składni i autouzupełnianie SQL są dostępne w przypadku używania języka SQL wewnątrz polecenia języka Python, na przykład w poleceniu spark.sql .

Eksplorowanie wyników komórek SQL w notesach języka Python przy użyciu języka Python

Możesz załadować dane przy użyciu języka SQL i eksplorować je przy użyciu języka Python. W notesie języka Python usługi Databricks wyniki tabeli z komórki języka SQL są automatycznie udostępniane jako ramka danych języka Python przypisana do zmiennej _sqldf.

W środowisku Databricks Runtime 13.3 LTS i nowszym można również uzyskać dostęp do wyniku ramki danych przy użyciu systemu buforowania danych wyjściowych IPython. Licznik monitu jest wyświetlany w komunikacie wyjściowym wyświetlanym w dolnej części wyników komórki. W przedstawionym przykładzie odwołujesz się do wyniku jako Out[2].

Uwaga

  • Zmienna _sqldf może zostać ponownie przypisana przy każdym uruchomieniu %sql komórki. Aby uniknąć utraty odwołania do wyniku ramki danych, przed uruchomieniem następnej %sql komórki przypisz ją do nowej nazwy zmiennej:

    new_dataframe_name = _sqldf
    
  • Jeśli zapytanie używa widżetu do parametryzacji, wyniki nie są dostępne jako ramka danych języka Python.

  • Jeśli zapytanie używa słów kluczowych CACHE TABLE lub UNCACHE TABLE, wyniki nie są dostępne jako ramka danych języka Python.

Zrzut ekranu przedstawia przykład:

ramka danych wyników sql

Równoległe wykonywanie komórek SQL

Gdy polecenie jest uruchomione, a notes jest dołączony do klastra interaktywnego, możesz uruchomić komórkę SQL jednocześnie przy użyciu bieżącego polecenia. Komórka SQL jest wykonywana w nowej sesji równoległej.

Aby wykonać komórkę równolegle:

  1. Uruchom komórkę.

  2. Kliknij pozycję Uruchom teraz. Komórka jest natychmiast wykonywana.

    Uruchamianie komórki SQL równolegle z bieżącą uruchomioną komórką

Ponieważ komórka jest uruchamiana w nowej sesji, widoki tymczasowe, funkcje zdefiniowane przez użytkownika i niejawna ramka danych języka Python (_sqldf) nie są obsługiwane dla komórek wykonywanych równolegle. Ponadto podczas równoległego wykonywania są używane domyślne nazwy wykazu i bazy danych. Jeśli kod odwołuje się do tabeli w innym wykazie lub bazie danych, musisz określić nazwę tabeli przy użyciu przestrzeni nazw trzy-poziomowej (catalog.schema.table).

Wykonywanie komórek SQL w usłudze SQL Warehouse

Polecenia SQL można uruchamiać w notesie usługi Databricks w usłudze SQL Warehouse — typie obliczeń zoptymalizowanych pod kątem analizy SQL. Zobacz Używanie notesu z usługą SQL Warehouse.

Wyświetlanie obrazów

Aby wyświetlić obrazy przechowywane w magazynie plików, użyj składni :

%md
![test](files/image.png)

Załóżmy na przykład, że masz plik obrazu logo usługi Databricks w magazynie plików:

dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png

W przypadku uwzględnienia następującego kodu w komórce języka Markdown:

Obraz w komórce języka Markdown

obraz jest renderowany w komórce:

Renderowany obraz

Wyświetlanie równań matematycznych

Notesy obsługują język KaTeX do wyświetlania formuł matematycznych i równań. Przykład:

%md
\\(c = \\pm\\sqrt{a^2 + b^2} \\)

\\(A{_i}{_j}=B{_i}{_j}\\)

$$c = \\pm\\sqrt{a^2 + b^2}$$

\\[A{_i}{_j}=B{_i}{_j}\\]

renderuje jako:

Renderowane równanie 1

oraz

%md
\\( f(\beta)= -Y_t^T X_t \beta + \sum log( 1+{e}^{X_t\bullet\beta}) + \frac{1}{2}\delta^t S_t^{-1}\delta\\)

where \\(\delta=(\beta - \mu_{t-1})\\)

renderuje jako:

Renderowane równanie 2

Dołącz kod HTML

Kod HTML można uwzględnić w notesie przy użyciu funkcji displayHTML. Zobacz HTML, D3 i SVG w notesach , aby zapoznać się z przykładem tego, jak to zrobić.

Uwaga

Element displayHTML iframe jest obsługiwany z domeny databricksusercontent.com , a piaskownica elementu iframe zawiera allow-same-origin atrybut . Domena databricksusercontent.com musi być dostępna z poziomu przeglądarki. Jeśli jest ona obecnie zablokowana przez sieć firmową, musi zostać dodana do listy dozwolonych.

Możesz połączyć się z innymi notesami lub folderami w komórkach języka Markdown przy użyciu ścieżek względnych. href Określ atrybut tagu kotwicy jako ścieżkę względną, zaczynając od elementu , $ a następnie postępuj zgodnie z tym samym wzorcem co w systemach plików unix:

%md
<a href="$./myNotebook">Link to notebook in same folder as current notebook</a>
<a href="$../myFolder">Link to folder in parent folder of current notebook</a>
<a href="$./myFolder2/myNotebook2">Link to nested notebook</a>