Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 porównania obok siebie, zobacz Nawigacja po notatniku i edytorze plików 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).
Notatniki Databricks obejmują również wbudowany interaktywny debuger dla notatników Python. Zobacz Notatniki debugowania.
Modularyzacja kodu
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.
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ą wysiłek potrzebny do utrzymania formatowania kodu oraz pomagają w narzucaniu jednolitych standardów kodowania w notesach.
biblioteka Black formatter dla Pythona
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 black w zeszycie. Notatnik musi być podłączony do klastra z pakietami black
i tokenize-rt
języka Python zainstalowanymi.
W środowisku Databricks Runtime 11.3 LTS i nowszym, usługa Azure Databricks wstępnie instalują komponenty black
i tokenize-rt
. Możesz użyć formattera bezpośrednio, bez konieczności instalowania tych bibliotek.
W środowisku Databricks Runtime 10.4 LTS i starszych, należy zainstalować black==22.3.0
i tokenize-rt==4.2.1
z PyPI w swoim notesie lub klastrze, aby używać formatera Pythona. 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 notatników w folderach Git w usłudze Databricks, można skonfigurować formater języka Python na podstawie pliku pyproject.toml
. Aby użyć tej funkcji, utwórz plik pyproject.toml
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.
Usługa Azure Databricks używa biblioteki Gethue/sql-formatter do formatowania SQL i czarnego formatera kodu dla języka Python.
Formater można uruchomić w następujący sposób:
Formatowanie pojedynczej komórki
- Skrót klawiaturowy: naciśnij Cmd+Shift+F.
- Menu kontekstowe polecenia:
- Formatuj komórkę SQL: wybierz Format SQL z menu kontekstowego komórki SQL. Ten element menu jest widoczny tylko w komórkach zeszytu SQL lub w tych, które używają
%sql
magii językowej. - Formatuj komórkę Pythona: wybierz pozycję Formatuj Python w menu kontekstowym komórki Pythona. Ten element menu jest widoczny tylko w komórkach notatnika Pythona lub w przypadku
%python
magii języka.
- Formatuj komórkę SQL: wybierz Format SQL z menu kontekstowego komórki SQL. Ten element menu jest widoczny tylko w komórkach zeszytu SQL lub w tych, które używają
- Menu edytowania notatnika
: wybierz komórkę Python lub SQL, a następnie wybierz Edytuj formatowanie komórki .
Formatowanie wielu komórek
Zaznacz wiele komórek, a następnie wybierz Formatuj komórkę(i) > Edytuj. 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
.Sformatuj wszystkie komórki Python i SQL w notesie
Wybierz Edytuj formatowanie notesu>. Jeśli notes zawiera więcej niż jeden język, tylko komórki SQL i Python są formatowane. Obejmuje to te, które używają
%sql
i%python
.
Aby dostosować sposób formatowania zapytań SQL, zobacz Instrukcje JĘZYKA SQL w formacie niestandardowym.
Ograniczenia formatowania kodu
- Black wymusza standardy PEP 8 dla wcięcia na 4 spacje. Wcięcie nie jest konfigurowalne.
- Formatowanie osadzonych ciągów języka Python wewnątrz funkcji użytkownika SQL (UDF) nie jest obsługiwane. Podobnie, formatowanie stringów SQL wewnątrz funkcji definiowanej przez użytkownika w Pythonie nie jest obsługiwane.
Języki kodu w notesach
Ustaw język domyślny
Domyślny język notesu jest wyświetlany poniżej nazwy 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 magicznego języka.
Mieszaj języki
Komórki domyślnie używają 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.
Alternatywnie możesz użyć magicznego polecenia językowego %<language>
na początku komórki. Obsługiwane polecenia magic to: %python
, %r
, %scala
i %sql
.
Uwaga
Po wywołaniu polecenia magicznego języka to polecenie jest wysyłane do środowiska REPL w kontekście wykonywania notatnika. Zmienne zdefiniowane w jednym języku (a tym samym w REPL dla tego języka) nie są dostępne w REPL innego języka. REPL-e mogą współdzielić stan tylko za pośrednictwem zasobów zewnętrznych, takich jak pliki w DBFS lub obiekty w magazynie obiektów.
Notatniki obsługują również kilka dodatkowych poleceń magicznych.
-
%sh
: umożliwia uruchamianie kodu powłoki w notatniku. Aby spowodować niepowodzenie komórki, jeśli polecenie powłoki ma stan zakończenia inny niż zero, dodaj opcję-e
. 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 zdbutils
poleceń systemu plików. Aby na przykład uruchomić poleceniedbutils.fs.ls
, aby wyświetlić listę plików, możesz 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, gdy używasz języka SQL wewnątrz polecenia w Pythonie, na przykład w poleceniu .
Eksplorowanie wyników komórek SQL
W notesie usługi Databricks wyniki z komórki języka SQL są automatycznie udostępniane jako niejawna ramka danych przypisana do zmiennej _sqldf
. Następnie możesz użyć tej zmiennej w dowolnym języku Python i komórkach SQL uruchamianych później, niezależnie od ich położenia w notesie.
Uwaga
Ta funkcja ma następujące ograniczenia:
- Zmienna
_sqldf
nie jest dostępna w notesach korzystających z usługi SQL Warehouse na potrzeby obliczeń. - Używanie
_sqldf
w kolejnych komórkach języka Python jest obsługiwane w środowisku Databricks Runtime 13.3 lub nowszym. - Używanie
_sqldf
w kolejnych komórkach SQL jest obsługiwane tylko w środowisku Databricks Runtime 14.3 lub nowszym. - Jeśli zapytanie używa słów kluczowych
CACHE TABLE
lubUNCACHE TABLE
, zmienna jest niedostępna_sqldf
.
Poniższy zrzut ekranu pokazuje, jak można użyć _sqldf
w kolejnych komórkach w językach Python i SQL.
Ważne
Zmienna _sqldf
jest ponownie przypisywana za każdym razem, gdy jest uruchamiana komórka SQL. Aby uniknąć utraty odwołania do określonego wyniku ramki danych, przed uruchomieniem następnej komórki SQL przypisz ją do nowej nazwy zmiennej:
Pyton
new_dataframe_name = _sqldf
SQL
ALTER VIEW _sqldf RENAME TO new_dataframe_name
Równoległe wykonywanie komórek SQL
Gdy polecenie jest uruchomione, a notatnik jest dołączony do klastra interaktywnego, możesz uruchomić komórkę SQL jednocześnie z bieżącym poleceniem. Komórka SQL jest wykonywana w nowej sesji równoległej.
Aby wykonać blok kodu równolegle:
Kliknij przycisk Uruchom teraz. Komórka jest natychmiast wykonywana.
Ponieważ komórka jest uruchamiana w nowej sesji, widoki tymczasowe, funkcje UDF oraz niejawna ramka danych języka Python (_sqldf
) nie są obsługiwane w przypadku 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 na poziomie trzech poziomów (catalog
.schema
.table
).
Uruchom komórki SQL w magazynie SQL
Polecenia SQL można uruchamiać w notesie Databricks na magazynie SQL, rodzaju obliczeniowego zoptymalizowanego pod kątem analizy SQL. Zobacz Używanie notesu w środowisku SQL Warehouse.
Uruchamianie kodu w Asystencie na obliczeniach bezserwerowych
Kod można uruchamiać w Asystencie w usłudze Databricks w bezserwerowych obliczeniach, co jest domyślnym wystąpieniem obliczeniowym w usłudze Databricks. W przypadku stron, na których obliczenia zostały już wybrane (na przykład w notesach lub edytorze SQL), usługa Databricks domyślnie ich używa. Aby uzyskać informacje o typach obliczeniowych, zobacz Typy obliczeń.
Jeśli nie masz dostępu do obliczeń bezserwerowych, musisz mieć wystąpienie obliczeniowe dostępne do uruchamiania kodu w panelu Asystent.