Udostępnij za pośrednictwem


Opracowywanie, uruchamianie i zarządzanie notesami usługi Microsoft Fabric

Notatnik Microsoft Fabric to główny element kodu służący do tworzenia zadań Apache Spark oraz eksperymentów z 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 tworzyć notesy, wykorzystując operacje w komórkach kodu, i uruchamiać je.

Tworzyć notatniki

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.

Zapewniamy bogate możliwości do tworzenia notesów.

Dodawanie komórki

Istnieje wiele sposobów dodawania nowej komórki do notesu.

  1. Umieść kursor na przestrzeni między dwoma komórkami i wybierz pozycję Kod lub Markdown.

  2. Użyj skrótów w trybie poleceń. 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 Fabric obsługują obecnie cztery języki 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

Można używać wielu języków w notesie, określając magiczną komendę języka na początku komórki. Możesz również przełączyć język komórek za pomocą selektora języka. W poniższej tabeli wymieniono magiczne polecenia przełączania języków komórek.

Zrzut ekranu przedstawiający przykład polecenia magicznego języka wprowadzonego na początku komórki.

Polecenie Magiczne Język Opis
%%pyspark Pyton Wykonaj zapytanie w języku Python względem kontekstu platformy Apache Spark.
%%spark Skala Wykonaj zapytanie Scala względem kontekstu platformy Apache Spark.
%%sql SparkSQL Wykonaj zapytanie SparkSQL względem kontekstu platformy Apache Spark.
%%html Html Wykonaj n 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

Notatniki Fabric 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 IntelliSense mają różne poziomy dojrzałości w różnych językach. 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 dla zmiennych Uzupełnianie kodu funkcji systemu Uzupełnianie kodu funkcji użytkownika Inteligentne wcięcie Zwijanie kodu
PySpark (Python) Tak Tak Tak Tak Tak Tak Tak Tak
Pyton 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
Język T-SQL Tak Tak Tak Nie Tak Tak Tak Tak

Uwaga

Aby korzystać z uzupełniania kodu IntelliSense, musisz mieć aktywną sesję platformy Apache Spark.

Ulepszanie programowania w języku Python za pomocą rozwiązania Pylance

Uwaga

Obecnie funkcja jest dostępna w wersji zapoznawczej.

Pylance, zaawansowany i bogaty w funkcje serwer językowy, jest teraz dostępny w notebooku Fabric. Rozwiązanie Pylance ułatwia programowanie w języku Python dzięki inteligentnym uzupełnianiom, lepszemu wykrywaniu błędów i ulepszonym analizom kodu. Kluczowe ulepszenia obejmują inteligentniejsze autouzupełnianie, ulepszoną obsługę funkcji lambda, sugestie parametrów, ulepszone informacje po najechaniu kursorem, lepsze renderowanie docstringów i wyróżnianie błędów. Dzięki funkcji Pylance pisanie kodu python i PySpark staje się szybsze, dokładniejsze i bardziej wydajne.

Fragmenty kodu

Notesy Fabric udostępniają fragmenty kodu, które ułatwiają pisanie często używanych wzorców kodu, takich jak:

  • Odczytywanie danych jako DataFrame w Apache Spark
  • Rysowanie wykresów za pomocą Matplotlib

Fragmenty pojawiają się w skrótach klawiszowych w stylu IDE IntelliSense zmieszane z innymi sugestiami. Zawartość wycinka kodu jest zgodna z językiem komórki 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.

Animowany plik GIF fragmentów kodu.

Przeciągnij i upuść, aby wstawić fragmenty kodu

Użyj przeciągania i upuszczania, aby wygodnie odczytywać dane z eksploratora Lakehouse. Tutaj obsługiwanych jest wiele typów plików; można wykonywać operacje na plikach tekstowych, tabelach, obrazach itp. Możesz przerzucić do istniejącej komórki albo do nowej komórki. Notebook generuje fragment kodu w celu podglądu danych.

Animowany GIF przedstawiający przeciąganie i upuszczanie do wstawiania fragmentów.

Przeciągnij i upuść, aby wstawić obrazy

Użyj funkcji „przeciągnij i upuść”, aby łatwo wstawiać obrazy z przeglądarki lub komputera lokalnego do komórki markdown.

Animowany GIF do przeciągania i upuszczania obrazów.

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.

Zrzut ekranu przedstawiający pasek narzędzi formatowania tekstu.

Cofnij lub przywróć operacje komórek

Wybierz Cofnij lub Wykonaj ponownie, albo naciśnij Z lub Shift+Z, aby cofnąć najnowsze operacje w komórkach. Możesz cofnąć lub ponownie wykonać maksymalnie 10 najnowszych operacji na komórkach.

Zrzut ekranu przedstawiający opcje menu Cofnij i Ponów.

Obsługiwane operacje cofania dla komórek:

  • Wstaw lub usuń komórkę. Możesz przywrócić usunięte operacje, wybierając pozycję Cofnij (zawartość tekstowa jest zachowywana 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 na tekście w komórkach i operacje komentowania komórek kodu nie mogą być cofnięte. Możesz cofnąć lub ponownie wykonać maksymalnie 10 najnowszych operacji na komórkach.

Przenoszenie komórki

Możesz przeciągnąć z pustej części komórki i upuścić ją do wybranej pozycji.

Możesz również przenieść wybraną komórkę za pomocą polecenia Przenieś w górę i Przenieś w dół na wstążce.

Zrzut ekranu przedstawiający opcje przenoszenia komórki.

Usuwanie komórki

Aby usunąć komórkę, wybierz przycisk usuń po prawej stronie komórki.

Możesz również użyć skrótów klawiszowych w trybie polecenia. Naciśnij Shift+D, aby usunąć bieżącą komórkę.

Zwiń wejście komórki

Wybierz ikonę wielokropka Więcej poleceń (...) na pasku narzędzi komórki i Ukryj wejście, aby ukryć wejście bieżącej komórki. Aby rozwinąć ją ponownie, wybierz pozycję Pokaż dane wejściowe gdy komórka jest zwinięta.

Zwiń wyjście komórki

Wybierz opcję Więcej poleceń (...) na pasku narzędzi komórki i Ukryj dane wyjściowe, aby zwinąć dane wyjściowe bieżącej komórki. Aby ponownie rozwinąć dane wyjściowe, wybierz pozycję Pokaż dane wyjściowe gdy dane wyjściowe są zwinięte.

Zabezpieczenie wyjścia 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 lakehouse podczas wykonywania zapytań notebooka. Użytkownicy bez dostępu do folderu lub tabeli widzą 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ą autoryzacji do bezpośredniego uruchamiania zapytań względem danych.

Blokowanie lub zamrażanie komórki

Operacje blokowania i zamrażania komórek umożliwiają ustawianie komórek jako tylko do odczytu lub uniemożliwiają wykonanie komórek kodu indywidualnie.

Animowany GIF przedstawiający blokowanie lub zamrażanie komórki.

Scalanie i dzielenie komórek

Możesz użyć opcji Scal z poprzednią komórką lub Scal z następną komórką, aby wygodnie scalić powiązane komórki.

Wybranie Podziel komórkę pomaga podzielić nieistotne stwierdzenia na wiele komórek. Operacja dzieli kod zgodnie z położeniem wiersza kursora.

Zrzut ekranu przedstawiający scalanie podzielonych komórek.

Zawartość notatnika

Wybranie opcji Konspekt lub Spis treści spowoduje wyświetlenie pierwszego nagłówka markdown z dowolnej komórki markdown w oknie bocznym dla szybkiej nawigacji. Pasek boczny Kontury można zmieniać rozmiar i zwijać, aby jak najlepiej dopasować do ekranu. Wybierz przycisk Zawartość na pasku poleceń notesu, aby otworzyć lub ukryć pasek boczny.

Zrzut ekranu przedstawiający, gdzie wybrać opcję Zawartość.

Zwijanie markdown

Opcja zwijania markdown umożliwia ukrywanie komórek znajdujących się pod komórką markdown, która zawiera nagłówek. Komórka markdown i jej ukryte komórki są traktowane tak samo jak zestaw ciągłych wielokrotnie zaznaczonych komórek podczas wykonywania operacji na komórkach.

Animowany GIF przedstawiający składanie markdown.

Znajdź i zamień

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.

Zrzut ekranu przedstawiający okienko znajdowania i zastępowania.

Uzupełnianie kodu w linii Copilot (wersja zapoznawcza)

Uzupełnianie kodu w linii przez Copilot to funkcja oparta na sztucznej inteligencji, która ułatwia szybsze i wydajniejsze pisanie kodu w języku Python w Fabric Notebooks. Ta funkcja zapewnia inteligentne, świadome kontekstu sugestie kodu podczas jego pisania. Zmniejsza powtarzające się zadania, minimalizuje błędy składniowe i przyspiesza programowanie dzięki bezproblemowej integracji z przepływem pracy notesu.

Najważniejsze korzyści

  • Uzupełnianie oparte na sztucznej inteligencji: Generuje sugestie na podstawie kontekstu notesu przy użyciu modelu wytrenowanego na milionach wierszy kodu.
  • Zwiększa produktywność: Ułatwia pisanie złożonych funkcji, zmniejsza powtarzalne kodowanie i przyspiesza eksplorację nieznanych bibliotek.
  • Zmniejsza błędy: Minimalizuje błędy pisowni i składni dzięki inteligentnym uzupełnianiom obsługującym kontekst.
  • Minimalna konfiguracja: Wbudowane w notatniki Fabric, nie wymaga żadnej instalacji. Możesz ją włączyć i rozpocząć kodowanie.

Jak to działa

Włącz sugestie dotyczące kodu wbudowanego za pomocą przełącznika na dole notatnika. Podczas wpisywania sugestie są wyświetlane w jasnoszarym tekście, naciśnij Tab, aby zaakceptować lub zmodyfikować. Sugestie są oparte na poprzednich komórkach notesu.

Zrzut ekranu przedstawiający sposób włączania uzupełniania kodu Copilot.

Zrzut ekranu przedstawiający automatyczną sugestię kodu z uzupełnianiem kodu z Copilot.

Uwaga

Włączenie wbudowanego uzupełniania kodu przez Copilot spowoduje zużycie dodatkowych jednostek pojemności.

Bieżące ograniczenia

  • Obecnie funkcja uzupełniania kodu Copilot Inline Code Completion obsługuje język Python, korzystając z kontekstu poprzednich komórek i schematów Lakehouse.
  • Sugestie uwzględniają dane ze schematów Lakehouse.
  • W przypadku wielu tabel lub kolumn jest używany tylko podzbiór elementów schematu.
  • Tabele tworzone dynamicznie (za pośrednictwem platformy Spark) nie są rozpoznawane w czasie rzeczywistym.

Uruchamianie notatnikó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.

Uruchom komórkę

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 poleceń. 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 kolejności.

Uruchom wszystkie komórki znajdujące się powyżej lub poniżej

Rozwiń listę rozwijaną od pozycji Uruchom wszystko, a następnie wybierz Uruchom komórki powyżej, aby uruchomić wszystkie komórki powyżej aktualnej komórki w kolejności. Wybierz Uruchom komórki poniżej, aby uruchomić bieżącą komórkę i wszystkie komórki poniżej w kolejności.

Zrzut ekranu przedstawiający opcje menu

Anuluj wszystkie uruchomione komórki

Wybierz Anuluj wszystko, aby anulować uruchomione komórki lub komórki oczekujące w kolejce.

Zatrzymywanie sesji

Zatrzymaj sesję anuluje uruchomione i oczekujące procesy i zatrzymuje bieżącą sesję. Możesz ponownie uruchomić nową sesję, wybierając ponownie opcję uruchamiania.

Zrzut ekranu przedstawiający, gdzie wybrać pozycję Anuluj wszystkie uruchomienia i zatrzymać sesję.

Bieg odniesienia

Uruchomienie referencyjnego notebooka

Oprócz interfejsu API uruchamiania odniesień notebookutils, można również użyć komendy magic do odniesienia się do innego notesu w kontekście bieżącego notesu. Wszystkie zmienne zdefiniowane w notesie odniesienia są dostępne w bieżącym notesie. Polecenie magiczne %run obsługuje zagnieżdżone wywołania, ale nie obsługuje wywołań rekurencyjnych. 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" }.

Notatnik działa zarówno w trybie interaktywnym, jak i przetwarzania potokowego.

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, , floatbooli string. Operacja zamiany zmiennej nie jest obsługiwana.
  • Polecenie %run nie obsługuje zagnieżdżonych odwołań o głębokości większej niż pięć.

Odwołaj się do uruchomienia 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: Opcja ta wskazuje, że polecenie znajduje i uruchamia określony plik skryptu z wbudowanych zasobów notebooka.
  • -c/--current: Ta opcja gwarantuje, że polecenie zawsze używa wbudowanych zasobów bieżącego notesu, nawet jeśli bieżący notes jest przywoływany 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 zasobów wbudowanych z określonymi zmiennymi: %run -b script_file.py { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }

Uwaga

Jeśli polecenie nie zawiera -b/--builtin, próbuje znaleźć i wykonać element notatnika w tym samym obszarze roboczym, zamiast w zasobach wbudowanych.

Przykład użycia dla zagnieżdżonego scenariusza testowego:

  • Załóżmy, że mamy dwa notesy.
    • Notebook1: zawiera script_file1.py we wbudowanych zasobach
    • Notebook2: zawiera script_file2.py we wbudowanych zasobach
  • Użyjmy Notebook1 jako notesu głównego z zawartością: %run Notebook2.
  • Następnie w notesie Notebook2 instrukcja dotycząca użycia jest następująca:
    • Aby uruchomić script_file1.py w Notebook1 (główny notes), kod będzie: %run -b script_file1.py
    • Aby uruchomić script_file2.py w Notebook2(aktualny notes), kod będzie: %run -b -c script_file2.py

Eksplorator zmiennych

Notatniki Fabric udostępniają wbudowanego eksploratora zmiennych, który wyświetla listę nazw zmiennych, typów, długości i wartości w bieżącej sesji 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 opcję Zmienne na wstążce notesu w zakładce Widok.

Zrzut ekranu przedstawiający miejsce otwierania zmiennych.

Uwaga

Eksplorator zmiennych obsługuje tylko język Python.

Wskaźnik stanu komórki

Status wykonywania komórki krok po kroku jest wyświetlany pod komórką, aby pomóc Ci zobaczyć jego bieżący postęp. Po zakończeniu przebiegu komórki zostanie wyświetlone podsumowanie wykonania z łącznym czasem trwania i czasem zakończenia, które zostanie zapisane do archiwum.

Zrzut ekranu przedstawiający przykład szczegółów stanu uruchomienia komórki.

Wskaźnik stanu sesji

Konfiguracja limitu czasu sesji

W lewym dolnym rogu możesz wybrać stan sesji, aby uzyskać więcej informacji na temat bieżącej sesji:

Zrzut ekranu przedstawiający informacje o sesji.

W oknie podręcznym jest dostępna opcja zresetowania limitu czasu do określonej liczby minut lub godzin.

Zrzut ekranu przedstawiający limit czasu sesji.

Wybierz, jak długo chcesz nieprzerwanej sesji i wybierz pozycję Zastosuj. Czas wygaśnięcia sesji resetuje się z nową wartością i jesteś gotowy do działania!

Możesz również ustawić limit czasu zgodnie z opisem:

Nie wyloguj się: Jeśli podczas logowania zostanie wyświetlone okno dialogowe Nie wylogowuj się, wybierz pozycję Tak , aby dezaktywować limit czasu bezczynności sesji dla bieżącej sesji.

Ważne

Nie zaznaczaj pola wyboru Nie pokazuj tego ponownie , ponieważ spowoduje to trwałe zablokowanie ustawień logowania. Pamiętaj, że ta opcja może nie być wyświetlana, jeśli administrator dzierżawy wyłączył ustawienie Nie wylogowuj mnie (KMSI).

Zażądaj zmiany zasad: Jeśli potrzebujesz dłuższego czasu trwania sesji, poproś administratora dzierżawy o przedłużenie zasad czasu trwania sesji bezczynności. Mogą to zrobić, przechodząc do pozycji Ustawienia > organizacji Zabezpieczenia i prywatność > Limit czasu bezczynności sesji w centrum administracyjnym M365.

Uwaga

Wybranie usługi KMSI i/lub wydłużenie limitu czasu trwania sesji bezczynności spowoduje wydłużenie ryzyka uzyskania dostępu do odblokowanej maszyny.

Jak ABT i limit czasu bezczynności sesji wpływają na długotrwałe uruchamianie notatnika Fabric?

Jeśli najemca korzysta z limitu czasu opartego na działaniach (ABT), długotrwałe zadania interakcyjne w notesach Fabric mogą być wpływane przez polityki limitu czasu bezczynności sesji platformy Microsoft 365. Ta funkcja zabezpieczeń została zaprojektowana tak, aby wylogowywać użytkowników na nieaktywnych, niezarządzanych urządzeniach, nawet jeśli zadanie w notatniku jest nadal uruchomione. Podczas gdy działania w innych aplikacjach platformy Microsoft 365 mogą utrzymać sesję aktywną, bezczynne urządzenia są wylogowywane zgodnie z zamierzeniem.

Dlaczego użytkownicy są wylogowani nawet wtedy, gdy zadanie notatnika jest w trakcie wykonywania?

Limit czasu bezczynności sesji określa priorytety zabezpieczeń, kończąc sesje na nieaktywnych urządzeniach, aby zapobiec nieautoryzowanemu dostępowi. Nawet jeśli wykonywanie notesu jest w toku, sesja kończy się, jeśli urządzenie nie wyświetla żadnych działań. Utrzymywanie otwartych sesji na urządzeniach bezczynnych spowodowałoby naruszenie zabezpieczeń, dlatego bieżące zachowanie jest wymuszane.

Wskaźnik zadań Apache Spark w linii

Fabric notebook jest oparty na 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ń przypadających na każde zadanie lub etap pomaga zidentyfikować stopień równoległości w pracy 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 w czasie rzeczywistym na poziomie komórki obok wskaźnika postępu, a moduł diagnostyki może zapewnić przydatne sugestie ułatwiające ulepszanie i debugowanie kodu.

Zrzut ekranu przedstawiający szczegóły postępu zadań platformy Spark.

W obszarze Więcej akcji można łatwo przejść do strony szczegółów aplikacji platformy Spark i strony internetowego interfejsu użytkownika platformy Spark.

Zrzut ekranu przedstawiający szczegóły więcej działań.

Redakcja tajna

Aby zapobiec przypadkowemu wyciekowi poświadczeń podczas uruchamiania notesów, notesy Fabric obsługują redakcję tajemnic, aby zastąpić wartości tych tajemnic wyświetlanych w danych wyjściowych komórki za pomocą [REDACTED]. Redagowanie wpisów tajnych ma zastosowanie w przypadku języków Python, Scala i R.

Zrzut ekranu redagowania tajnych treści.

Polecenia magiczne w notatniku

Wbudowane polecenia magiczne

w Notesach Fabric można używać znanych poleceń magicznych IPython. Przejrzyj poniższą listę aktualnie dostępnych poleceń magic.

Uwaga

Są to jedyne polecenia magiczne obsługiwane w potoku Fabric: %%pyspark, %%spark, %%csharp, %%sql, %%configure.

Dostępne polecenia magic wiersza: %lsmagic, %time, %timeit, %history, %run, %load, %alias, %alias_magic, %autoawait, %autocall, %automagic, %bookmark, %cd, %colors, %dhist, %dirs, %doctest_mode, %killbgscripts, %load_ext, %logoff, %logon, %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, %whos, %xdel, %xmode.

Notes typu Fabric obsługują również ulepszone polecenia zarządzania bibliotekami %pip 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 magiczne

Możesz również utworzyć więcej niestandardowych poleceń magicznych, aby spełnić określone potrzeby. Oto przykład:

  1. Utwórz notatnik o nazwie "MyLakehouseModule".

    Zrzut ekranu przedstawiający definiowanie niestandardowej magii.

  2. W innym notatniku odwołaj się do "MyLakehouseModule" i jego poleceń magicznych. Ten proces umożliwia wygodne organizowanie projektu za pomocą notesów korzystających z różnych języków.

    Zrzut ekranu przedstawiający używanie magii niestandardowej.

Widżety IPython

Widżety IPython to dynamiczne obiekty 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ć widgetów IPython

  1. Najpierw zaimportuj moduł ipywidgets , aby użyć struktury widżetu Jupyter.

    import ipywidgets as widgets
    
  2. Użyj funkcji wyświetlania najwyższego poziomu, aby renderować widżet, lub umieść wyrażenie typu widget na ostatniej linii komórki kodu.

    slider = widgets.IntSlider()
    display(slider)
    
  3. Uruchom komórkę. Widżet zostanie wyświetlony w obszarze danych wyjściowych.

    slider = widgets.IntSlider()
    display(slider)
    

    Zrzut ekranu przedstawiający widżet wyświetlany w obszarze danych wyjściowych.

  4. 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)
    

    Zrzut ekranu przedstawiający wiele razy jeden widżet.

  5. 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)
    

    Zrzut ekranu przedstawiający wiele wystąpień widżetów.

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łącznik, pole wyboru, ważny
Widżety wyboru Lista rozwijana, Przycisk wyboru, Wybierz, Suwak wyboru, Suwak zakresu wyboru, Przyciski przełączające, Wybierz wiele
Widżety tekstowe Tekst, obszar tekstowy, pole wyboru, hasło, etykieta, HTML, HTML Matematyka, obraz, przycisk
Widżety odtwarzania (animacja) Selektor dat, selektor kolorów, kontroler
Widżety kontenerowe lub układowe Skrzynka, Skrzynka pozioma, Skrzynka pionowa, Skrzynka siatkowa, Akordeon, Zakładki, Stosowane

Znane ograniczenia

  • Następujące widżety nie są jeszcze obsługiwane. Dostępne są następujące obejścia:

    Funkcjonalność Obejście problemu
    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 Jeszcze nieobsługiwane.
  • Globalna funkcja wyświetlania Fabric 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 display IPython.

  • Jeśli zamkniesz notes zawierający widżet IPython, nie będziesz mógł go zobaczyć ani wchodzić z nim w interakcję, dopóki ponownie nie wykonasz odpowiedniej komórki.

  • Funkcja interact (ipywidgets.interact) nie jest obsługiwana.

Zintegrować notatnik

Wyznacz komórkę parametrów

Aby parametryzować notes, wybierz wielokropek (...), aby uzyskać dostęp do poleceń Więcej na pasku narzędzi komórki. Następnie wybierz Przełącz komórkę parametrów, aby oznaczyć komórkę jako komórkę parametrów.

Zrzut ekranu przedstawiający, gdzie wybrać opcję Przełącz opcję komórki parametru.

Komórka parametrów jest przydatna do integrowania notatnika w ramach potoku. Działanie przepływu poszukuje komórki parametrów i traktuje tę komórkę jako domyślną dla parametrów przekazywanych w momencie wykonywania. Aparat wykonawczy dodaje nową komórkę poniżej komórki parametrów z wejściowymi parametrami, aby zastąpić wartości domyślne.

Przypisz wartości parametrów z potoku

Po utworzeniu notatnika z parametrami, można go wykonać z rurociągu za pomocą aktywności Fabric. Po dodaniu aktywności do obszaru roboczego potoku, można ustawić wartości parametrów w sekcji Podstawowe parametry karty Ustawienia.

Zrzut ekranu pokazujący, gdzie przypisać wartości parametrów z potoku.

Podczas przypisywania wartości parametrów można użyć języka wyrażeń potoku lub funkcji i zmiennych.

Polecenie specjalne konfiguracji sesji Spark

Sesję platformy Spark można spersonalizować za pomocą polecenia magic %%configure. Notes Fabric obsługują dostosowanie vCores, pamięci dla Driver i Executor, właściwości Apache Spark, punkty montowania, pule, oraz domyślny lakehouse dla sesji notatnika. Mogą być używane zarówno w działaniach zeszytu interaktywnego, jak i zeszytu procesu. 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"]
    "driverCores": 4, // Recommended values: [4, 8, 16, 32, 64]
    "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 będzie działać tylko podczas aktualnej sesji notatnika.
  • Można używać %%configure w potokach Fabric, ale jeśli nie są one ustawione 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 notebookutils.notebook.run zostanie zignorowane, natomiast to używane w %run notebook będzie dalej działać.
  • Standardowe właściwości konfiguracji platformy Spark muszą być używane w treści "conf". Platforma nie obsługuje referencji pierwszego poziomu dla właściwości konfiguracji 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 mają zastosowania w sekcji "conf".

Konfiguracja sparametryzowanej sesji w potoku

Parametryzowana konfiguracja sesji pozwala na zastąpienie wartości w magicznej konfiguracji %%configure, używając parametrów aktywności notesu uruchamianego w 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" 
        } 
    } 
} 

Notatnik używa wartości domyślnej, jeśli uruchamiasz notatnik w trybie interaktywnym bezpośrednio lub jeśli akcja notatnika w potoku nie dostarcza parametru odpowiadającego "activityParameterName".

Podczas uruchamiania potoku można skonfigurować ustawienia aktywności notatnika potoku w następujący sposób:

Zrzut ekranu przedstawiający miejsce konfigurowania sesji sparametryzowanej.

Jeśli chcesz zmienić konfigurację sesji, nazwa parametrów aktywności notebooka powinna być taka sama jak parameterName w zeszycie. W tym przykładzie uruchamiania potoku, driverCores w %%configure zostają zastąpione przez 8, a livy.rsc.sql.num-rows przez 4000.

Uwaga

  • Jeśli uruchomienie zestawu danych zakończy się niepowodzeniem, ponieważ użyto magicznego polecenia %%configure, znajdź więcej informacji o błędzie, uruchamiając komórkę %%configure magic w trybie interaktywnym notatnika.
  • Zaplanowane uruchomienia notatnika nie wspierają sparametryzowanej konfiguracji sesji.

Rejestrowanie w języku Python w notatniku

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

Notatnik Fabric obsługuje polecenie magiczne %history, aby wydrukować historię wprowadzonych poleceń wykonywanych w bieżącej sesji, w porównaniu do standardowego polecenia Jupyter Ipython %history, które działa w kontekście wielu języków w notatniku.

%history [-n] [range [range ...]]

Opcje:

  • -n: Numer wykonania wydruku.

Gdzie zakres może być:

  • N: Drukuj kod n-tej wykonanej komórki.
  • M-N: Drukuj kod z komórki M-tej do N-tej wykonanej.

Przykład:

  • Drukuj historię danych wejściowych od pierwszej do drugiej wykonanej komórki: %history -n 1-2

Klawisze skrótów

Podobnie jak w przypadku notatników Jupyter, notatniki Fabric mają interfejs użytkownika w trybie modalnym. Klawiatura wykonuje różne czynności w zależności od trybu, w jakim znajduje się komórka notatnika. Notatniki Fabric obsługują następujące dwa tryby dla danej komórki kodu: tryb poleceń i tryb edycji.

  • Komórka jest w trybie poleceń, gdy nie ma kursora tekstu zachęcającego do wpisania. Gdy komórka jest w trybie polecenia, możesz edytować cały notatnik, ale nie wpisywać do poszczególnych komórek. Wprowadź tryb poleceń, naciskając ESC lub używając myszy, aby wybrać miejsce poza obszarem edytora komórki.

    Zrzut ekranu przedstawiający komórkę w trybie polecenia.

  • Tryb edycji można rozpoznać po kursorze tekstowym, który zachęca do wpisywania w obszarze edytora. Gdy komórka jest w trybie edycji, możesz wpisywać do komórki. Wprowadź tryb edycji, naciskając Enter lub używając myszy, aby wybrać obszar edytora komórki.

    Zrzut ekranu przedstawiający komórkę w trybie edycji.

Klawisze skrótów w trybie polecenia

Akcja Skróty klawiaturowe w notebooku
Uruchom bieżącą komórkę i wybierz opcję poniżej Shift+Enter
Uruchom bieżącą komórkę i wstaw poniżej Alt+Enter
Uruchom bieżącą komórkę Ctrl+Enter
Zaznacz komórkę powyżej W górę
Wybierz komórkę poniżej w dół
Wybierz poprzednią komórkę K
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 Wejść

Skróty klawiszowe w trybie edycji

Korzystając z poniższych skrótów klawiszowych, można łatwo nawigować i uruchamiać kod w notatnikach Fabric w trybie edycji.

Akcja Skróty klawiaturowe w notebooku
Przenieś kursor w górę W górę
Przenieś kursor w dół w dół
Cofnąć Ctrl + Z
Przywróć Ctrl + Y
Komentarz lub usuń komentarz Ctrl + /
Komentarz: Ctrl + K + C
Usuń komentarz: Ctrl + K + U
Usuń słowo 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ź jedno słowo w lewo Ctrl + Strzałka w lewo
Przejdź o jedno słowo w prawo Ctrl + w prawo
Wybierz wszystko Ctrl + A
Wcięcie Klawisz Ctrl + ]
Usuń wcięcie Ctrl + [
Przełączanie do trybu poleceń Esc

Aby znaleźć wszystkie skróty, wybierz pozycję Widok na wstążce notesu, a następnie wybierz pozycję Skróty klawiszowe.