Tworzenie, wykonywanie notesów usługi Microsoft Fabric i zarządzanie nimi
Notes usługi Microsoft Fabric to podstawowy element kodu służący do tworzenia zadań platformy Apache Spark i eksperymentów uczenia maszynowego. Jest to interaktywna powierzchnia internetowa używana przez analityków danych i inżynierów danych do pisania kodu korzystającego z zaawansowanych wizualizacji i tekstu markdown. W tym artykule wyjaśniono, jak opracowywać notesy przy użyciu operacji komórek kodu i uruchamiać je.
Tworzenie notesów
Notesy składają się z komórek, które są poszczególnymi blokami kodu lub tekstu, które mogą być uruchamiane niezależnie lub jako grupa.
Udostępniamy rozbudowane operacje tworzenia notesów:
- Dodawanie komórki
- Ustawianie języka podstawowego
- Używanie wielu języków
- IntelliSense w stylu IDE
- Fragmenty kodu
- Przeciągnij i upuść, aby wstawić fragmenty kodu
- Przeciągnij i upuść, aby wstawić obrazy
- Formatowanie komórki tekstowej za pomocą przycisków paska narzędzi
- Cofnij lub wykonaj ponownie operację komórki
- Przenoszenie komórki
- Usuwanie komórki
- Zwiń dane wejściowe komórki
- Zwiń dane wyjściowe komórki
- Zabezpieczenia danych wyjściowych komórki
- Blokowanie lub blokowanie komórki
- Zawartość notesu
- Składanie markdown
- Znajdowanie i zastępowanie
Dodawanie komórki
Istnieje wiele sposobów dodawania nowej komórki do notesu.
Umieść kursor na przestrzeni między dwoma komórkami i wybierz pozycję Kod lub Markdown.
Użyj skrótów w trybie polecenia. Naciśnij A , aby wstawić komórkę nad bieżącą komórką. Naciśnij B , aby wstawić komórkę poniżej bieżącej komórki.
Ustawianie języka podstawowego
Notesy sieci szkieletowej obsługują obecnie cztery języki platformy Apache Spark:
- PySpark (Python)
- Spark (Scala)
- Spark SQL
- SparkR
Język podstawowy dla nowych dodanych komórek można ustawić z listy rozwijanej na górnym pasku poleceń.
Używanie wielu języków
W notesie można używać wielu języków, określając polecenie magic języka na początku komórki. Możesz również przełączyć język komórek z selektora języka. W poniższej tabeli wymieniono magiczne polecenia przełączania języków komórek.
Polecenie Magic | Język | Opis |
---|---|---|
%%pyspark | Python | Wykonaj zapytanie w języku Python względem kontekstu platformy Apache Spark. |
%%spark | Scala | Wykonaj zapytanie Scala względem kontekstu platformy Apache Spark. |
%%sql | SparkSQL | Wykonaj zapytanie SparkSQL względem kontekstu platformy Apache Spark. |
%%html | Html | Wykonaj zapytanie HTML względem kontekstu platformy Apache Spark. |
%%sparkr | R | Wykonaj zapytanie języka R względem kontekstu platformy Apache Spark. |
IntelliSense w stylu IDE
Notesy sieci szkieletowej są zintegrowane z edytorem Monaco w celu wprowadzenia funkcji IntelliSense w stylu IDE do edytora komórek. Wyróżnianie składni, znacznik błędów i automatyczne uzupełnianie kodu ułatwia szybkie pisanie kodu i identyfikowanie problemów.
Funkcje funkcji IntelliSense są na różnych poziomach dojrzałości dla różnych języków. W poniższej tabeli przedstawiono obsługę usługi Fabric:
Języki | Wyróżnianie składni | Znacznik błędu składniowego | Uzupełnianie kodu składniowego | Uzupełnianie kodu zmiennej | Uzupełnianie kodu funkcji systemu | Uzupełnianie kodu funkcji użytkownika | Inteligentne wcięcie | Składanie kodu |
---|---|---|---|---|---|---|---|---|
PySpark (Python) | Tak | Tak | Tak | Tak | Tak | Tak | Tak | Tak |
Spark (Scala) | Tak | Tak | Tak | Tak | Tak | Tak | Tak | Tak |
SparkSQL | Tak | Tak | Tak | Tak | Tak | Nie | Tak | Tak |
SparkR | Tak | Tak | Tak | Tak | Tak | Tak | Tak | Tak |
Uwaga
Aby korzystać z uzupełniania kodu IntelliSense, musisz mieć aktywną sesję platformy Apache Spark.
Fragmenty kodu
Notesy sieci szkieletowej udostępniają fragmenty kodu, które ułatwiają łatwe pisanie często używanych wzorców kodu, takich jak:
- Odczytywanie danych jako ramki danych platformy Apache Spark
- Wykresy rysunkowe z biblioteką Matplotlib
Fragmenty kodu są wyświetlane w skrótów w stylu IDE IntelliSense mieszanej z innymi sugestiami. Zawartość fragmentu kodu jest zgodna z językiem komórek kodu. Dostępne fragmenty kodu można zobaczyć, wpisując fragment kodu. Możesz również wpisać dowolne słowo kluczowe, aby wyświetlić listę odpowiednich fragmentów kodu. Jeśli na przykład wpiszesz odczyt, zostanie wyświetlona lista fragmentów kodu do odczytu danych z różnych źródeł danych.
Przeciągnij i upuść, aby wstawić fragmenty kodu
Użyj przeciągania i upuszczania, aby wygodnie odczytywać dane z eksploratora usługi Lakehouse. W tym miejscu obsługiwanych jest wiele typów plików; Można wykonywać operacje na plikach tekstowych, tabelach, obrazach itp. Możesz usunąć istniejącą komórkę lub nową komórkę. Notes generuje fragment kodu odpowiednio w celu wyświetlenia podglądu danych.
Przeciągnij i upuść, aby wstawić obrazy
Przeciągnij i upuść, aby łatwo wstawić obrazy z przeglądarki lub komputera lokalnego do komórki markdown.
Formatowanie komórki tekstowej za pomocą przycisków paska narzędzi
Aby ukończyć typowe akcje markdown, użyj przycisków formatowania na pasku narzędzi komórki tekstu.
Cofnij lub wykonaj ponownie operacje komórek
Wybierz pozycję Cofnij lub Wykonaj ponownie albo naciśnij Z lub Shift+Z, aby odwołać najnowsze operacje komórek. Możesz cofnąć lub ponownie wykonać maksymalnie 10 najnowszych operacji historycznych komórek.
Obsługiwane operacje cofania komórek:
- Wstaw lub usuń komórkę. Operacje usuwania można odwołać, wybierając pozycję Cofnij (zawartość tekstowa jest przechowywana wraz z komórką).
- Zmień kolejność komórki.
- Przełącz parametr.
- Przekonwertuj między komórką kodu a komórką języka Markdown.
Uwaga
Operacje tekstowe w komórce i operacje komentowania komórek kodu nie mogą zostać cofnięte. Możesz cofnąć lub ponownie wykonać maksymalnie 10 najnowszych operacji historycznych komórek.
Przenoszenie komórki
Możesz przeciągnąć z pustej części komórki i upuścić ją do żądanej pozycji.
Możesz również przenieść wybraną komórkę przy użyciu polecenia Przenieś w górę i Przenieś w dół na wstążce.
Usuwanie komórki
Aby usunąć komórkę, wybierz przycisk usuń po prawej stronie komórki.
Możesz również użyć skrótów w trybie polecenia. Naciśnij Shift+D , aby usunąć bieżącą komórkę.
Zwiń dane wejściowe komórki
Wybierz wielokropek Więcej poleceń (...) na pasku narzędzi komórki i Ukryj dane wejściowe, aby zwinąć dane wejściowe bieżącej komórki. Aby rozwinąć ją ponownie, wybierz pozycję Pokaż dane wejściowe po zwinięciu komórki.
Zwiń dane wyjściowe komórki
Wybierz wielokropek Więcej poleceń (...) na pasku narzędzi komórek i Ukryj dane wyjściowe, aby zwinąć dane wyjściowe bieżącej komórki. Aby rozwinąć go ponownie, wybierz pozycję Pokaż dane wyjściowe po zwinięciu danych wyjściowych komórki.
Zabezpieczenia danych wyjściowych komórki
Za pomocą ról dostępu do danych usługi OneLake (wersja zapoznawcza) użytkownicy mogą konfigurować dostęp tylko do określonych folderów w usłudze Lakehouse podczas wykonywania zapytań notesu. Użytkownicy bez dostępu do folderu lub tabeli zobaczą nieautoryzowany błąd podczas wykonywania zapytania.
Ważne
Zabezpieczenia mają zastosowanie tylko podczas wykonywania zapytania, a wszystkie komórki notesu zawierające wyniki zapytania mogą być wyświetlane przez użytkowników, którzy nie mają uprawnień do bezpośredniego uruchamiania zapytań względem danych.
Blokowanie lub blokowanie komórki
Operacje blokady i blokowania komórek umożliwiają uruchamianie komórek tylko do odczytu lub zatrzymywania komórek kodu na poszczególnych podstawie.
Scalanie i dzielenie komórek
Możesz użyć funkcji Scal z poprzednią komórką lub Scal z następną komórką, aby wygodnie scalić powiązane komórki.
Wybranie pozycji Podziel komórkę ułatwia podzielenie nieistotnych instrukcji na wiele komórek. Operacja dzieli kod zgodnie z położeniem wiersza kursora.
Zawartość notesu
Wybranie pozycji Konspekt lub Spis treści spowoduje wyświetlenie pierwszego nagłówka markdown dowolnej komórki markdown w oknie paska bocznego na potrzeby szybkiej nawigacji. Pasek boczny Kontury można zmieniać rozmiar i zwijać, aby dopasować ekran w najlepszy możliwy sposób. Wybierz przycisk Zawartość na pasku poleceń notesu, aby otworzyć lub ukryć pasek boczny.
Składanie markdown
Opcja składania znaczników markdown umożliwia ukrycie komórek pod komórką markdown zawierającą nagłówek. Komórka markdown i jej ukryte komórki są traktowane tak samo jak zestaw ciągłych wielo zaznaczonych komórek podczas wykonywania operacji komórek.
Znajdowanie i zamienianie
Opcja znajdź i zamień może pomóc w dopasowaniu i zlokalizowaniu słów kluczowych lub wyrażeń w zawartości notesu. Można również łatwo zastąpić ciąg docelowy nowym ciągiem.
Uruchamianie notesów
Komórki kodu można uruchamiać pojedynczo lub jednocześnie w notesie. Stan i postęp każdej komórki są wyświetlane w notesie.
Uruchamianie komórki
Istnieje kilka sposobów uruchamiania kodu w komórce.
Zatrzymaj wskaźnik myszy na komórce, którą chcesz uruchomić, i wybierz przycisk Uruchom komórkę lub naciśnij Ctrl+Enter.
Użyj skrótów w trybie polecenia. Naciśnij Shift+Enter , aby uruchomić bieżącą komórkę i wybrać następną komórkę. Naciśnij Alt+Enter , aby uruchomić bieżącą komórkę i wstawić nową komórkę.
Uruchamianie wszystkich komórek
Wybierz przycisk Uruchom wszystko, aby uruchomić wszystkie komórki w bieżącym notesie w sekwencji.
Uruchom wszystkie komórki powyżej lub poniżej
Rozwiń listę rozwijaną z pozycji Uruchom wszystko, a następnie wybierz pozycję Uruchom komórki powyżej , aby uruchomić wszystkie komórki powyżej bieżącej kolejności. Wybierz pozycję Uruchom komórki poniżej , aby uruchomić bieżącą komórkę i wszystkie komórki poniżej bieżącej sekwencji.
Anuluj wszystkie uruchomione komórki
Wybierz pozycję Anuluj wszystko , aby anulować uruchomione komórki lub komórki oczekujące w kolejce.
Zatrzymywanie sesji
Zatrzymaj sesję anuluje uruchomione i oczekujące komórki i zatrzymuje bieżącą sesję. Możesz ponownie uruchomić nową sesję, wybierając ponownie opcję uruchamiania.
Przebieg odwołania
Odwołanie do uruchamiania notesu
Oprócz interfejsu API uruchamiania odwołań do notesów można również użyć %run <notebook name>
polecenia magic, aby odwołać się do innego notesu w kontekście bieżącego notesu. Wszystkie zmienne zdefiniowane w notesie odniesienia są dostępne w bieżącym notesie. Polecenie %run
magic obsługuje zagnieżdżone wywołania, ale nie obsługuje wywołań cyklicznych. Otrzymasz wyjątek, jeśli głębokość instrukcji jest większa niż pięć.
Przykład: %run Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }
.
Dokumentacja notesu działa zarówno w trybie interaktywnym, jak i potoku.
Uwaga
- Polecenie
%run
obsługuje obecnie tylko notesy referencyjne w tym samym obszarze roboczym z bieżącym notesem. - Polecenie
%run
obsługuje obecnie tylko do czterech typów wartości parametrów:int
, ,float
bool
istring
. Operacja zamiany zmiennej nie jest obsługiwana. - Polecenie
%run
nie obsługuje zagnieżdżonego odwołania o głębokości większej niż pięć.
Odwołanie do uruchamiania skryptu
Polecenie %run
umożliwia również uruchamianie plików języka Python lub SQL przechowywanych we wbudowanych zasobach notesu, dzięki czemu możesz wygodnie wykonywać pliki kodu źródłowego w notesie.
%run [-b/--builtin -c/--current] [script_file.py/.sql] [variables ...]
Opcje:
- -b/-builtin: ta opcja wskazuje, że polecenie znajdzie i uruchomi określony plik skryptu z wbudowanych zasobów notesu.
- -c/--current: Ta opcja gwarantuje, że polecenie zawsze używa wbudowanych zasobów bieżącego notesu, nawet jeśli bieżący notes jest przywołyyny przez inne notesy.
Przykłady:
Aby uruchomić script_file.py z wbudowanych zasobów:
%run -b script_file.py
Aby uruchomić script_file.sql z wbudowanych zasobów:
%run -b script_file.sql
Aby uruchomić script_file.py z wbudowanych zasobów z określonymi zmiennymi:
%run -b script_file.py { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }
Uwaga
Jeśli polecenie nie zawiera parametru -b/-builtin, spróbuje znaleźć i wykonać element notesu w tym samym obszarze roboczym, a nie we wbudowanych zasobach.
Przykład użycia dla zagnieżdżonego przypadku uruchomienia:
- Załóżmy, że mamy dwa notesy.
- Notebook1: zawiera script_file1.py we wbudowanych zasobach
- Notebook2: zawiera script_file2.py we wbudowanych zasobach
- Użyjmy notesu Notebook1 jako notesu głównego z zawartością:
%run Notebook2
. - Następnie w notesie Notebook2 instrukcja użycia to:
- Aby uruchomić script_file1.py w notesie Notebook1 (główny notes), kod będzie:
%run -b script_file1.py
- Aby uruchomić script_file2.py w notesie Notebook2 (bieżącym notesie), kod będzie:
%run -b -c script_file2.py
- Aby uruchomić script_file1.py w notesie Notebook1 (główny notes), kod będzie:
Eksplorator zmiennych
Notesy sieci szkieletowej udostępniają wbudowanego eksploratora zmiennych, który wyświetla listę nazw zmiennych, typów, długości i wartości w bieżącej sesji platformy Spark dla komórek PySpark (Python). Więcej zmiennych jest wyświetlanych automatycznie w miarę ich definiowania w komórkach kodu. Kliknięcie każdego nagłówka kolumny sortuje zmienne w tabeli.
Aby otworzyć lub ukryć eksploratora zmiennych, wybierz pozycję Zmienne w widoku wstążki notesu.
Uwaga
Eksplorator zmiennych obsługuje tylko język Python.
Wskaźnik stanu komórki
Stan wykonywania komórki krok po kroku jest wyświetlany pod komórką, aby ułatwić wyświetlenie bieżącego postępu. Po zakończeniu przebiegu komórki zostanie wyświetlone podsumowanie wykonania z łącznym czasem trwania i czasem zakończenia, które będzie przechowywane na potrzeby przyszłego odwołania.
Wbudowany wskaźnik zadania platformy Apache Spark
Notes sieci szkieletowej jest oparty na platformie Apache Spark. Komórki kodu są wykonywane zdalnie w klastrze Apache Spark. Wskaźnik postępu zadania platformy Spark jest dostarczany z paskiem postępu w czasie rzeczywistym, który ułatwia zrozumienie stanu wykonywania zadania. Liczba zadań na każde zadanie lub etap pomaga zidentyfikować równoległy poziom zadania platformy Spark. Możesz również przejść do szczegółów interfejsu użytkownika platformy Spark określonego zadania (lub etapu), wybierając link w nazwie zadania (lub etapu).
Możesz również znaleźć dziennik na poziomie komórki w czasie rzeczywistym obok wskaźnika postępu, a diagnostyka może zapewnić przydatne sugestie ułatwiające uściślanie i debugowanie kodu.
W obszarze Więcej akcji można łatwo przejść do strony szczegółów aplikacji platformy Spark i strony internetowego interfejsu użytkownika platformy Spark.
Redagowanie wpisów tajnych
Aby zapobiec przypadkowemu wyciekowi poświadczeń podczas uruchamiania notesów, notesy sieci szkieletowej obsługują redagowanie wpisów tajnych w celu zastąpienia wartości wpisów tajnych wyświetlanych w danych wyjściowych komórki przy [REDACTED]
użyciu polecenia . Redagowanie wpisów tajnych ma zastosowanie w przypadku języków Python, Scala i R.
Polecenia magic w notesie
Wbudowane polecenia magic
Znane polecenia magic ipython można używać w notesach sieci Szkieletowej. Przejrzyj poniższą listę aktualnie dostępnych poleceń magic.
Uwaga
Są to jedyne polecenia magiczne obsługiwane w potoku sieci szkieletowej: %%pyspark, %%spark, %%csharp, %%sql, %%%configure.
Dostępne polecenia magic wiersza: %lsmagic, %time, %timeit, %history, %run, %load, %alias, %alias_magic, %autoawait, %autocall, %autocall, %automagic, %bookmark, %cd, %colors, %dhist, %dirs, %doctest_mode, %killbgscripts, %load_ext, %logoff, %logn, %logstart, %logstate, %logstop, %magic, %matplotlib, %page, %pastebin, %pdef, %pfile, %pinfo, %pinfo2, %popd, %pprint, %precision, %prun, %psearch, %psource, %pushd, %pwd, %pycat, %quickref, % rehashx, %reload_ext, %reset, %reset_selective, %sx, %system, %tb, %unalias, %unload_ext, %who, %who_ls, %who's, %xdel, %xmode.
Notes sieci szkieletowej obsługuje również ulepszone polecenia zarządzania bibliotekami % i %conda. Aby uzyskać więcej informacji na temat użycia, zobacz Zarządzanie bibliotekami platformy Apache Spark w usłudze Microsoft Fabric.
Dostępne polecenia magii komórek: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%configure, %%html, %%bash, %%markdown, %%perl, %%script, %%sh.
Niestandardowe polecenia magic
Możesz również utworzyć więcej niestandardowych poleceń magicznych, aby spełnić określone potrzeby. Oto przykład:
Utwórz notes o nazwie "MyLakehouseModule".
W innym notesie odwołaj się do polecenia "MyLakehouseModule" i jego poleceń magicznych. Ten proces umożliwia wygodne organizowanie projektu za pomocą notesów korzystających z różnych języków.
Widżety IPython
Widżety IPython to zdarzenia obiektów języka Python, które mają reprezentację w przeglądarce. Widżety IPython można używać jako kontrolek z małą ilością kodu (na przykład suwaka lub pola tekstowego) w notesie, podobnie jak notes Jupyter. Obecnie działa tylko w kontekście języka Python.
Aby użyć widżetów IPython
Najpierw zaimportuj moduł ipywidgets , aby użyć struktury widżetu Jupyter.
import ipywidgets as widgets
Funkcja wyświetlania najwyższego poziomu umożliwia renderowanie widżetu lub pozostawienie wyrażenia typu widżetu w ostatnim wierszu komórki kodu.
slider = widgets.IntSlider() display(slider)
Uruchom komórkę. Widżet zostanie wyświetlony w obszarze danych wyjściowych.
slider = widgets.IntSlider() display(slider)
Użyj wielu wywołań display(), aby wielokrotnie renderować to samo wystąpienie widżetu. Pozostają one zsynchronizowane ze sobą.
slider = widgets.IntSlider() display(slider) display(slider)
Aby renderować dwa widżety niezależnie od siebie, utwórz dwa wystąpienia widżetów:
slider1 = widgets.IntSlider() slider2 = widgets.IntSlider() display(slider1) display(slider2)
Obsługiwane widżety
Typ widżetów | Widżety |
---|---|
Widżety liczbowe | IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText |
Widżety logiczne | PrzełącznikButton, pole wyboru, prawidłowe |
Widżety wyboru | Lista rozwijana, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple |
Widżety ciągów | Tekst, obszar tekstowy, pole kombi, hasło, etykieta, HTML, matematyka HTML, obraz, przycisk |
Widżety odtwarzania (animacja) | Selektor dat, selektor kolorów, kontroler |
Widżety kontenera lub układu | Box, HBox, VBox, GridBox, Accordion, Tabs, Stacked |
Znane ograniczenia
Następujące widżety nie są jeszcze obsługiwane. Dostępne są następujące obejścia:
Funkcjonalność Obejście Widżet danych wyjściowych Zamiast tego możesz użyć funkcji print(), aby zapisać tekst w obiekcie stdout. widgets.jslink() Możesz użyć funkcji widgets.link(), aby połączyć dwa podobne widżety. Widżet FileUpload Nieobsługiwane jeszcze. Globalna funkcja wyświetlania sieci szkieletowej nie obsługuje wyświetlania wielu widżetów w jednym wywołaniu (na przykład display(a, b)). To zachowanie różni się od funkcji wyświetlania IPython.
Jeśli zamkniesz notes zawierający widżet IPython, nie będzie można z nim zobaczyć ani wchodzić z nim w interakcję, dopóki nie wykonasz odpowiedniej komórki ponownie.
Funkcja interact (ipywidgets.interact) nie jest obsługiwana.
Integrowanie notesu
Wyznaczanie komórki parametrów
Aby sparametryzować notes, wybierz wielokropek (...) , aby uzyskać dostęp do więcej poleceń na pasku narzędzi komórki. Następnie wybierz pozycję Przełącz komórkę parametru, aby wyznaczyć komórkę jako komórkę parametrów.
Komórka parametrów jest przydatna do integrowania notesu w potoku. Działanie potoku wyszukuje komórkę parametrów i traktuje tę komórkę jako domyślną wartość parametrów przekazywanych w czasie wykonywania. Aparat wykonywania dodaje nową komórkę pod komórką parameters z parametrami wejściowymi, aby zastąpić wartości domyślne.
Przypisywanie wartości parametrów z potoku
Po utworzeniu notesu z parametrami można go wykonać z potoku za pomocą działania notesu usługi Fabric. Po dodaniu działania do kanwy potoku można ustawić wartości parametrów w sekcji Podstawowe parametry na karcie Ustawienia .
Podczas przypisywania wartości parametrów można użyć języka wyrażeń potoku lub funkcji i zmiennych.
Polecenie magic konfiguracji sesji platformy Spark
Sesję platformy Spark można spersonalizować za pomocą polecenia magic %%configure. Notes sieci szkieletowej obsługuje niestandardowe rdzenie wirtualne, pamięć sterownika i funkcji wykonawczej, właściwości platformy Apache Spark, punkty instalacji, pulę i domyślną pulę sesji notesu. Mogą być używane zarówno w działaniach notesu interaktywnego, jak i notesu potoku. Zalecamy uruchomienie polecenia %%configure na początku notesu lub ponowne uruchomienie sesji platformy Spark, aby ustawienia zaczęły obowiązywać.
%%configure
{
// You can get a list of valid parameters to config the session from https://github.com/cloudera/livy#request-body.
"driverMemory": "28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g", "472g"]
"driverCores": 4, // Recommended values: [4, 8, 16, 32, 64, 80]
"executorMemory": "28g",
"executorCores": 4,
"jars": ["abfs[s]: //<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar", "wasb[s]: //<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
"conf":
{
// Example of customized property, you can specify count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
"livy.rsc.sql.num-rows": "3000",
"spark.log.level": "ALL"
},
"defaultLakehouse": { // This overwrites the default lakehouse for current session
"name": "<lakehouse-name>",
"id": "<(optional) lakehouse-id>",
"workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
},
"mountPoints": [
{
"mountPoint": "/myMountPoint",
"source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
},
{
"mountPoint": "/myMountPoint1",
"source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
},
],
"environment": {
"id": "<environment-id>",
"name": "<environment-name>"
},
"sessionTimeoutInSeconds": 1200,
"useStarterPool": false, // Set to true to force using starter pool
"useWorkspacePool": "<workspace-pool-name>"
}
Uwaga
- Zalecamy ustawienie tej samej wartości dla parametrów "DriverMemory" i "ExecutorMemory" w elemocie %%configure. Wartości "driverCores" i "executorCores" również powinny być takie same.
- Element "defaultLakehouse" zastąpi przypięty lakehouse w eksploratorze Lakehouse, ale działa tylko w bieżącej sesji notesu.
- Możesz użyć %%configure w potokach sieci szkieletowej, ale jeśli nie jest ona ustawiona w pierwszej komórce kodu, uruchomienie potoku zakończy się niepowodzeniem z powodu niemożności ponownego uruchomienia sesji.
- Narzędzie %%configure używane w pliku notebookutils.notebook.run zostanie zignorowane, ale używane w notesie %run będzie kontynuować wykonywanie.
- Standardowe właściwości konfiguracji platformy Spark muszą być używane w treści "conf". Sieć szkieletowa nie obsługuje odwołania pierwszego poziomu dla właściwości konfiguracji platformy Spark.
- Niektóre specjalne właściwości platformy Spark, w tym "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", "spark.executor.memory" i "spark.executor.instances" nie wchodzą w życie w treści "conf".
Konfiguracja sparametryzowanej sesji z potoku
Konfiguracja sparametryzowanej sesji umożliwia zastąpienie wartości w %%configure magic parametrami działania notesu uruchomienia potoku. Podczas przygotowywania komórki kodu %%configure można zastąpić wartości domyślne (również konfigurowalne, 4 i "2000" w poniższym przykładzie) za pomocą obiektu w następujący sposób:
{
"parameterName": "paramterNameInPipelineNotebookActivity",
"defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
}
%%configure
{
"driverCores":
{
"parameterName": "driverCoresFromNotebookActivity",
"defaultValue": 4
},
"conf":
{
"livy.rsc.sql.num-rows":
{
"parameterName": "rows",
"defaultValue": "2000"
}
}
}
Notes używa wartości domyślnej, jeśli uruchamiasz notes w trybie interaktywnym bezpośrednio lub jeśli działanie notesu potoku nie daje parametru zgodnego z parametrem "activityParameterName".
Podczas uruchamiania potoku można skonfigurować ustawienia działania notesu potoku w następujący sposób:
Jeśli chcesz zmienić konfigurację sesji, nazwa parametrów działania notesu potoku powinna być taka sama jak parameterName
w notesie. W tym przykładzie uruchamiania potoku driverCores
w konfiguracji %%configure jest zastępowany przez 8 i livy.rsc.sql.num-rows
zastąpiony przez 4000.
Uwaga
- Jeśli uruchomienie potoku zakończy się niepowodzeniem, ponieważ użyto polecenia %%configure magic, znajdź więcej informacji o błędzie, uruchamiając komórkę magic %%configure w trybie interaktywnym notesu.
- Zaplanowane uruchomienia notesu nie obsługują sparametryzowanej konfiguracji sesji.
Rejestrowanie języka Python w notesie
Dzienniki języka Python można znaleźć i ustawić różne poziomy dziennika i format, takie jak przykładowy kod pokazany tutaj:
import logging
# Customize the logging format for all loggers
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
handler.setFormatter(formatter)
# Customize log level for all loggers
logging.getLogger().setLevel(logging.INFO)
# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)
# logger that use the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")
# logger that use the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")
Wyświetlanie historii poleceń wejściowych
Notes sieci szkieletowej obsługuje polecenie %history
magic, aby wydrukować historię poleceń wejściowych wykonywanych w bieżącej sesji w porównaniu ze standardowym poleceniem %history
Jupyter Ipython, które działa dla wielu języków kontekstu w notesie.
%history [-n] [range [range ...]]
Opcje:
- -n: Numer wykonania wydruku.
Gdzie zakres może być:
- N: Drukuj kod Nth wykonanej komórki.
- M-N: Drukuj kod z Mth na Nth wykonaną komórkę.
Przykład:
- Drukuj historię danych wejściowych z 1 do drugiej wykonanej komórki:
%history -n 1-2
Klawisze skrótów
Podobnie jak w przypadku notesów Jupyter Notebook, notesy sieci Szkieletowej mają modalny interfejs użytkownika. Klawiatura wykonuje różne czynności w zależności od trybu, w którym znajduje się komórka notesu. Notesy sieci szkieletowej obsługują następujące dwa tryby dla danej komórki kodu: tryb polecenia i tryb edycji.
Komórka jest w trybie polecenia, gdy nie ma kursora tekstowego z monitem o wpisanie. Gdy komórka jest w trybie polecenia, możesz edytować notes jako całość, ale nie wpisywać w poszczególnych komórkach. Wprowadź polecenie Tryb polecenia, naciskając ESC lub używając myszy, aby zaznaczyć poza obszarem edytora komórki.
Tryb edycji można wskazać na podstawie kursora tekstowego, który monituje o wpisanie w obszarze edytora. Gdy komórka jest w trybie edycji, możesz wpisać w komórce. Wprowadź tryb edycji, naciskając Enter lub używając myszy, aby wybrać obszar edytora komórki.
skrótów w trybie polecenia
Akcja | Skróty notesu |
---|---|
Uruchom bieżącą komórkę i wybierz poniżej | Shift+Enter |
Uruchom bieżącą komórkę i wstaw poniżej | Alt+Enter |
Uruchamianie bieżącej komórki | Ctrl+Enter |
Zaznacz komórkę powyżej | W górę |
Wybierz komórkę poniżej | W dół |
Wybierz poprzednią komórkę | tys. |
Wybierz następną komórkę | J |
Wstaw komórkę powyżej | A |
Wstaw komórkę poniżej | B |
Usuń zaznaczone komórki | Shift + D |
Przełącz do trybu edycji | Enter |
skrótów w trybie edycji
Korzystając z poniższych skrótów klawiszowych, można łatwo nawigować i uruchamiać kod w notesach sieci szkieletowej w trybie edycji.
Akcja | Skróty notesu |
---|---|
Przenieś kursor w górę | W górę |
Przenieś kursor w dół | W dół |
Cofnij | Ctrl + Z |
Ponów | Ctrl + Y |
Komentarz lub usuń komentarz | Ctrl + / Komentarz: Ctrl + K + C Usuń komentarz: Ctrl + K + U |
Usuń wyraz przed | Ctrl + Backspace |
Usuń wyraz po | Ctrl + Delete |
Przejdź do początku komórki | Ctrl + Strona główna |
Przejdź do końca komórki | Ctrl + koniec |
Przejdź jeden wyraz w lewo | Ctrl + w lewo |
Przejdź jeden wyraz w prawo | Ctrl + w prawo |
Wybierz wszystko | Ctrl + A |
Wcięcie | Ctrl + ] |
Wcięcie | Ctrl + [ |
Przełączanie do trybu poleceń | Esc |
Aby znaleźć wszystkie skrótów, wybierz pozycję Widok na wstążce notesu, a następnie wybierz pozycję Powiązania.