Tworzenie, opracowywanie i obsługa notesów usługi Synapse
Notes w usłudze Azure Synapse Analytics (notes usługi Synapse) to interfejs internetowy umożliwiający tworzenie plików zawierających kod na żywo, wizualizacje i tekst narracji. Notesy to dobre miejsce do weryfikowania pomysłów i przeprowadzania krótkich eksperymentów w celu uzyskania szczegółowych informacji na podstawie danych. Notesy są również szeroko używane w scenariuszach przygotowywania danych, wizualizacji danych, uczenia maszynowego i innych scenariuszy danych big data.
Notes usługi Synapse umożliwia:
- Rozpocznij pracę z zerowym nakładem pracy nad konfiguracją.
- Zapewnianie bezpieczeństwa danych dzięki wbudowanym funkcjom zabezpieczeń przedsiębiorstwa.
- Analizowanie danych w nieprzetworzonych formatach (takich jak CSV, TXT i JSON), przetworzonych formatach plików (takich jak Parquet, Delta Lake i ORC) oraz plikach danych tabelarycznych SQL względem platform Spark i SQL.
- Wydajniej dzięki ulepszonym funkcjom tworzenia i wbudowanym wizualizacjom danych.
W tym artykule opisano sposób używania notesów w programie Synapse Studio.
Tworzenie notesu
Możesz utworzyć nowy notes lub zaimportować istniejący notes do obszaru roboczego usługi Synapse z Eksplorator obiektów. Wybierz menu Programowanie. + Wybierz przycisk i wybierz pozycję Notes lub kliknij prawym przyciskiem myszy pozycję Notesy, a następnie wybierz pozycję Nowy notes lub Importuj. Notesy usługi Synapse rozpoznają standardowe pliki IPYNB notesu Jupyter Notebook.
Tworzenie notesów
Notesy składają się z komórek, które są poszczególnymi blokami kodu lub tekstu, które można uruchamiać niezależnie lub jako grupę.
W poniższych sekcjach opisano operacje tworzenia notesów:
- Dodawanie komórki
- Ustawianie języka podstawowego
- Używanie wielu języków
- Używanie tabel tymczasowych do odwołowania się do danych w różnych językach
- Używanie funkcji IntelliSense w stylu IDE
- Używanie fragmentów kodu
- Formatowanie komórek tekstowych przy użyciu przycisków paska narzędzi
- Cofnij lub wykonaj ponownie operację komórki
- Komentarz do komórki kodu
- Przenoszenie komórki
- Kopiowanie komórki
- Usuwanie komórki
- Zwiń dane wejściowe komórki
- Zwiń dane wyjściowe komórki
- Korzystanie z konspektu notesu
Uwaga
W notesach SparkSession
wystąpienie jest tworzone automatycznie i przechowywane w zmiennej o nazwie spark
. Istnieje również zmienna o SparkContext
nazwie sc
. Użytkownicy mogą uzyskiwać bezpośredni dostęp do tych zmiennych, ale nie powinni zmieniać wartości tych zmiennych.
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. Wybierz klucz A, aby wstawić komórkę nad bieżącą komórką. Wybierz klucz B, aby wstawić komórkę poniżej bieżącej komórki.
Ustawianie języka podstawowego
Notesy usługi Synapse obsługują cztery języki platformy Apache Spark:
- PySpark (Python)
- Spark (Scala)
- Spark SQL
- .NET Spark (C#)
- SparkR (R)
Język podstawowy można ustawić dla nowo dodanych komórek z listy rozwijanej Język na górnym pasku poleceń.
Używanie wielu języków
W jednym notesie można użyć wielu języków, określając poprawne polecenie magic języka na początku komórki. W poniższej tabeli wymieniono polecenia magiczne umożliwiające przełączanie języków komórek.
Polecenie Magic | Język | opis |
---|---|---|
%%pyspark |
Python | Uruchom zapytanie w języku Python względem SparkContext elementu . |
%%spark |
Scala | Uruchom zapytanie Scala względem SparkContext elementu . |
%%sql |
Spark SQL | Uruchom zapytanie Spark SQL względem SparkContext elementu . |
%%csharp |
.NET dla platformy Spark C# | Uruchom zapytanie platformy .NET dla języka C# platformy Spark względem SparkContext . |
%%sparkr |
R | Uruchom zapytanie języka R względem SparkContext . |
Na poniższej ilustracji przedstawiono przykład sposobu pisania zapytania PySpark przy użyciu polecenia magic lub zapytania Spark SQL przy %%pyspark
użyciu polecenia magic przy użyciu %%sql
polecenia magic w notesie Spark (Scala). Język podstawowy notesu jest ustawiony na PySpark.
Używanie tabel tymczasowych do odwołowania się do danych w różnych językach
Nie można odwoływać się do danych ani zmiennych bezpośrednio w różnych językach w notesie usługi Synapse. Na platformie Spark możesz odwoływać się do tabeli tymczasowej w różnych językach. Oto przykład sposobu odczytywania ramki danych Scala w PySpark i Spark SQL przy użyciu tabeli tymczasowej Spark jako obejścia:
W komórce 1 odczytaj ramkę danych z łącznika puli SQL przy użyciu języka Scala i utwórz tabelę tymczasową:
%%spark val scalaDataFrame = spark.read.sqlanalytics("mySQLPoolDatabase.dbo.mySQLPoolTable") scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
W komórce 2 wykonaj zapytanie dotyczące danych przy użyciu usługi Spark SQL:
%%sql SELECT * FROM mydataframetable
W komórce 3 użyj danych w PySpark:
%%pyspark myNewPythonDataFrame = spark.sql("SELECT * FROM mydataframetable")
Używanie funkcji IntelliSense w stylu IDE
Notesy usługi Synapse są zintegrowane z edytorem Monaco w celu wprowadzenia funkcji IntelliSense w stylu IDE do edytora komórek. Funkcje wyróżniania składni, znacznika błędów i automatycznego uzupełniania kodu ułatwiają pisanie kodu i szybsze identyfikowanie problemów.
Funkcje funkcji IntelliSense są na różnych poziomach dojrzałości dla różnych języków. Skorzystaj z poniższej tabeli, aby zobaczyć, co jest obsługiwane.
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 | Nie | Tak |
Spark SQL | Tak | Tak | Tak | Tak | Tak | Nie. | Nie. | Nie. |
.NET dla platformy Spark (C#) | Tak | Tak | Tak | Tak | Tak | Tak | Tak | Tak |
Aktywna sesja platformy Spark jest wymagana, aby korzystać ze zmiennej uzupełniania kodu, uzupełniania kodu funkcji systemu i uzupełniania kodu funkcji użytkownika dla platformy .NET dla platformy Spark (C#).
Używanie fragmentów kodu
Notesy usługi Synapse udostępniają fragmenty kodu, które ułatwiają wprowadzanie często używanych wzorców kodu. Te wzorce obejmują konfigurowanie sesji platformy Spark, odczytywanie danych jako ramki danych platformy Spark i rysowanie wykresów przy użyciu biblioteki Matplotlib.
Fragmenty kodu są wyświetlane w skrótów funkcji IntelliSense w stylu IDE w połączeniu z innymi sugestiami. Zawartość fragmentów kodu jest zgodna z językiem komórek kodu. Dostępne fragmenty kodu można wyświetlić, wprowadzając fragment kodu lub dowolne słowa kluczowe, które pojawiają się w tytule fragmentu kodu w edytorze komórek kodu. Na przykład wprowadzając odczyt, możesz wyświetlić listę fragmentów kodu do odczytu danych z różnych źródeł danych.
Formatowanie komórek tekstowych przy użyciu przycisków paska narzędzi
Aby wykonać typowe akcje języka Markdown, możesz użyć przycisków formatowania na pasku narzędzi komórki tekstowej. Akcje te obejmują pogrubienie tekstu, kursywę tekstu, tworzenie akapitów i nagłówków za pomocą menu rozwijanego, wstawianie kodu, wstawianie listy nieuporządkowanej, wstawianie uporządkowanej listy, wstawianie hiperlinku i wstawianie obrazu z adresu URL.
Cofnij lub wykonaj ponownie operację komórki
Aby odwołać najnowsze operacje komórek, wybierz przycisk Cofnij lub Wykonaj ponownie albo wybierz Z lub Shift+Z. Teraz możesz cofnąć lub ponownie wykonać maksymalnie 10 operacji historycznych komórek.
Obsługiwane operacje komórek obejmują:
- Wstaw lub usuń komórkę. Operacje usuwania można odwołać, wybierając pozycję Cofnij. Ta akcja przechowuje zawartość tekstową wraz z komórką.
- Zmień kolejność komórek.
- Włącz lub wyłącz komórkę parametru.
- Przekonwertuj między komórką kodu a komórką języka Markdown.
Uwaga
Nie można cofnąć operacji tekstowych ani operacji komentowania w komórce.
Komentarz do komórki kodu
Wybierz przycisk Komentarze na pasku narzędzi notesu, aby otworzyć okienko Komentarze.
Wybierz kod w komórce kodu, wybierz pozycję Nowy w okienku Komentarze , dodaj komentarze, a następnie wybierz przycisk Opublikuj komentarz .
W razie potrzeby możesz wykonać akcje Edytuj komentarz, Rozwiąż wątek i Usuń wątki, wybierając wielokropek Więcej (...) obok komentarza.
Przenoszenie komórki
Aby przenieść komórkę, zaznacz lewą stronę komórki i przeciągnij komórkę do żądanej pozycji.
Kopiowanie komórki
Aby skopiować komórkę, najpierw utwórz nową komórkę, a następnie zaznacz cały tekst w oryginalnej komórce, skopiuj tekst i wklej tekst do nowej komórki. Gdy komórka jest w trybie edycji, tradycyjne skróty klawiaturowe do zaznacznia całego tekstu są ograniczone do komórki.
Napiwek
Notesy usługi Synapse udostępniają również fragmenty często używanych wzorców kodu.
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. Wybierz Shift+D, aby usunąć bieżącą komórkę.
Zwiń dane wejściowe komórki
Aby zwinąć dane wejściowe bieżącej komórki, wybierz wielokropek Więcej poleceń (...) na pasku narzędzi komórki, a następnie wybierz pozycję Ukryj dane wejściowe. Aby rozwinąć dane wejściowe, wybierz pozycję Pokaż dane wejściowe , gdy komórka jest zwinięta.
Zwiń dane wyjściowe komórki
Aby zwinąć dane wyjściowe bieżącej komórki, wybierz wielokropek Więcej poleceń (...) na pasku narzędzi komórki, a następnie wybierz pozycję Ukryj dane wyjściowe. Aby rozwinąć dane wyjściowe, wybierz pozycję Pokaż dane wyjściowe, gdy dane wyjściowe komórki są ukryte.
Korzystanie z konspektu notesu
Konspekt (spis treści) przedstawia pierwszy nagłówek markdown dowolnej komórki markdown w oknie paska bocznego na potrzeby szybkiej nawigacji. Pasek boczny konspektu można zmienić rozmiar i zwijać, aby dopasować ekran w najlepszy możliwy sposób. Aby otworzyć lub ukryć pasek boczny, wybierz przycisk Konspektu na pasku poleceń notesu.
Uruchamianie notesu
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.
Uwaga
Usunięcie notesu nie powoduje automatycznego anulowania żadnych aktualnie uruchomionych zadań. Jeśli musisz anulować zadanie, przejdź do centrum Monitorowanie i anuluj je ręcznie.
Uruchamianie komórki
Istnieje wiele sposobów uruchamiania kodu w komórce:
Umieść kursor na komórce, którą chcesz uruchomić, a następnie wybierz przycisk Uruchom komórkę lub naciśnij Ctrl+Enter.
Użyj skrótów w trybie polecenia. Wybierz Shift+Enter, aby uruchomić bieżącą komórkę i wybrać komórkę poniżej. Wybierz Alt+Enter, aby uruchomić bieżącą komórkę i wstawić pod nią nową komórkę.
Uruchamianie wszystkich komórek
Aby uruchomić wszystkie komórki w bieżącym notesie w sekwencji, wybierz przycisk Uruchom wszystko .
Uruchom wszystkie komórki powyżej lub poniżej
Aby uruchomić wszystkie komórki powyżej bieżącej komórki w sekwencji, rozwiń listę rozwijaną przycisku Uruchom wszystko , a następnie wybierz pozycję Uruchom komórki powyżej. Wybierz pozycję Uruchom komórki poniżej , aby uruchomić wszystkie komórki poniżej bieżącej komórki w sekwencji.
Anuluj wszystkie uruchomione komórki
Aby anulować uruchomione komórki lub komórki oczekujące w kolejce, wybierz przycisk Anuluj wszystkie .
Odwołanie do notesu
Aby odwołać się do innego notesu w kontekście bieżącego notesu, użyj %run <notebook path>
polecenia magic. Wszystkie zmienne zdefiniowane w notesie odniesienia są dostępne w bieżącym notesie.
Oto przykład:
%run /<path>/Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }
Dokumentacja notesu działa zarówno w trybie interaktywnym, jak i potokach.
Polecenie %run
magic ma następujące ograniczenia:
- Polecenie obsługuje zagnieżdżone wywołania, ale nie rekursywne.
- Polecenie obsługuje przekazywanie ścieżki bezwzględnej lub nazwy notesu tylko jako parametr. Nie obsługuje ścieżek względnych.
- Polecenie obsługuje obecnie tylko cztery typy wartości parametrów:
int
, ,bool
float
istring
. Nie obsługuje operacji wymiany zmiennych. - Notesy, do których odwołuje się odwołanie, muszą być publikowane. Musisz opublikować notesy, aby się do nich odwoływać, chyba że wybierzesz opcję włączenia nieopublikowanego odwołania do notesu. Program Synapse Studio nie rozpoznaje nieopublikowanych notesów z repozytorium Git.
- Przywołyne notesy nie obsługują głębokości instrukcji większych niż pięć.
Korzystanie z eksploratora zmiennych
Notes usługi Synapse udostępnia wbudowanego eksploratora zmiennych w postaci tabeli, która wyświetla listę zmiennych w bieżącej sesji platformy Spark dla komórek PySpark (Python). Tabela zawiera kolumny dla nazwy zmiennej, typu, długości i wartości. Więcej zmiennych jest wyświetlanych automatycznie w miarę ich definiowania w komórkach kodu. Wybranie każdego nagłówka kolumny sortuje zmienne w tabeli.
Aby otworzyć lub ukryć eksploratora zmiennych, wybierz przycisk Zmienne na pasku poleceń notesu.
Uwaga
Eksplorator zmiennych obsługuje tylko język Python.
Używanie wskaźnika stanu komórki
Stan krok po kroku uruchomienia komórki pojawia się pod komórką, aby ułatwić wyświetlenie bieżącego postępu. Po zakończeniu przebiegu komórki zostanie wyświetlone podsumowanie z łącznym czasem trwania i czasem zakończenia i pozostanie tam na potrzeby przyszłego odwołania.
Korzystanie ze wskaźnika postępu platformy Spark
Notes usługi Synapse jest oparty wyłącznie na platformie Spark. Komórki kodu są uruchamiane zdalnie w bezserwerowej puli platformy Apache Spark. Wskaźnik postępu zadania platformy Spark z paskiem postępu w czasie rzeczywistym pomaga zrozumieć stan uruchomienia zadania.
Liczba zadań dla każdego zadania lub etapu ułatwia zidentyfikowanie równoległego poziomu zadania platformy Spark. Możesz również dokładniej przejść do interfejsu użytkownika platformy Spark określonego zadania (lub etapu), wybierając link w nazwie zadania (lub etapu).
Konfigurowanie sesji platformy Spark
W okienku Konfigurowanie sesji , które można znaleźć, wybierając ikonę koła zębatego w górnej części notesu, możesz określić czas trwania limitu czasu, liczbę funkcji wykonawczych i rozmiar funkcji wykonawczych do nadania bieżącej sesji platformy Spark. Uruchom ponownie sesję platformy Spark, aby zmiany konfiguracji zaczęły obowiązywać. Wszystkie buforowane zmienne notesu są czyszczone.
Konfigurację można również utworzyć na podstawie konfiguracji platformy Apache Spark lub wybrać istniejącą konfigurację. Aby uzyskać szczegółowe informacje, zobacz Zarządzanie konfiguracją platformy Apache Spark.
Polecenie Magic służące do konfigurowania sesji platformy Spark
Ustawienia sesji platformy Spark można również określić za pomocą polecenia %%configure
magic . Aby ustawienia zaczęły obowiązywać, uruchom ponownie sesję platformy Spark.
Zalecamy uruchomienie na %%configure
początku notesu. Oto przykład. Pełną listę prawidłowych parametrów można znaleźć w informacjach usługi Livy w witrynie GitHub.
%%configure
{
//You can get a list of valid parameters to configure 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 a standard Spark property. To find more available properties, go to https://spark.apache.org/docs/latest/configuration.html#application-properties.
"spark.driver.maxResultSize":"10g",
//Example of a customized property. You can specify the count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
"livy.rsc.sql.num-rows":"3000"
}
}
Poniżej przedstawiono kilka zagadnień %%configure
dotyczących polecenia magic:
- Zalecamy użycie tej samej wartości dla
driverMemory
iexecutorMemory
w pliku%%configure
. Zalecamy również używaniedriverCores
tej samej wartości iexecutorCores
jej wartości. - Można użyć
%%configure
w potokach usługi Synapse, ale jeśli nie ustawisz go w pierwszej komórce kodu, uruchomienie potoku zakończy się niepowodzeniem, ponieważ nie może ponownie uruchomić sesji. - Polecenie
%%configure
używane w programiemssparkutils.notebook.run
jest ignorowane, ale polecenie używane w%run <notebook>
programie nadal działa. - Musisz użyć standardowych właściwości konfiguracji platformy Spark w treści
"conf"
. Nie obsługujemy odwołań pierwszego poziomu dla właściwości konfiguracji platformy Spark. - Niektóre specjalne właściwości platformy Spark nie będą obowiązywać w
"conf"
treści, w tym"spark.driver.cores"
, ,"spark.executor.cores"
"spark.driver.memory"
,"spark.executor.memory"
, i"spark.executor.instances"
.
Konfiguracja sparametryzowanej sesji z potoku
Za pomocą sparametryzowanej konfiguracji sesji można zastąpić wartości w %%configure
poleceniu magic parametrami uruchomienia potoku (działanie notesu). Podczas przygotowywania %%configure
komórki kodu można zastąpić wartości domyślne przy użyciu obiektu w następujący sposób:
{
"activityParameterName": "parameterNameInPipelineNotebookActivity",
"defaultValue": "defaultValueIfNoParameterFromPipelineNotebookActivity"
}
W poniższym przykładzie przedstawiono wartości 4
domyślne i "2000"
, które można również konfigurować:
%%configure
{
"driverCores":
{
"activityParameterName": "driverCoresFromNotebookActivity",
"defaultValue": 4
},
"conf":
{
"livy.rsc.sql.num-rows":
{
"activityParameterName": "rows",
"defaultValue": "2000"
}
}
}
Notes używa wartości domyślnej, jeśli notes jest uruchamiany bezpośrednio w trybie interaktywnym lub jeśli działanie notesu potoku nie udostępnia parametru zgodnego "activityParameterName"
z parametrem .
W trybie uruchamiania potoku możesz użyć karty Ustawienia , aby skonfigurować ustawienia działania notesu potoku.
Jeśli chcesz zmienić konfigurację sesji, nazwa parametru działania notesu potoku powinna być taka sama jak activityParameterName
w notesie. W tym przykładzie podczas uruchamiania 8
potoku funkcja zastępuje element driverCores
w pliku %%configure
i 4000
zastępuje element livy.rsc.sql.num-rows
.
Jeśli uruchomienie potoku zakończy się niepowodzeniem po użyciu %%configure
polecenia magic, możesz uzyskać więcej informacji o błędzie, uruchamiając %%configure
komórkę magic w trybie interaktywnym notesu.
Przenoszenie danych do notesu
Dane można załadować z usługi Azure Data Lake Storage Gen 2, Azure Blob Storage i pul SQL, jak pokazano w poniższych przykładach kodu.
Odczytywanie pliku CSV z usługi Azure Data Lake Storage Gen2 jako ramki danych Spark
from pyspark.sql import SparkSession
from pyspark.sql.types import *
account_name = "Your account name"
container_name = "Your container name"
relative_path = "Your path"
adls_path = 'abfss://%s@%s.dfs.core.windows.net/%s' % (container_name, account_name, relative_path)
df1 = spark.read.option('header', 'true') \
.option('delimiter', ',') \
.csv(adls_path + '/Testfile.csv')
Odczytywanie pliku CSV z usługi Azure Blob Storage jako ramki danych platformy Spark
from pyspark.sql import SparkSession
# Azure storage access info
blob_account_name = 'Your account name' # replace with your blob name
blob_container_name = 'Your container name' # replace with your container name
blob_relative_path = 'Your path' # replace with your relative folder path
linked_service_name = 'Your linked service name' # replace with your linked service name
blob_sas_token = mssparkutils.credentials.getConnectionStringOrCreds(linked_service_name)
# Allow Spark to access from Azure Blob Storage remotely
wasb_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set('fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name), blob_sas_token)
print('Remote blob path: ' + wasb_path)
df = spark.read.option("header", "true") \
.option("delimiter","|") \
.schema(schema) \
.csv(wasbs_path)
Odczytywanie danych z podstawowego konta magazynu
Dostęp do danych można uzyskać bezpośrednio na podstawowym koncie magazynu. Nie ma potrzeby podawania kluczy tajnych. W Eksploratorze danych kliknij prawym przyciskiem myszy plik i wybierz pozycję Nowy notes, aby wyświetlić nowy notes z automatycznie wygenerowanym wyodrębniakiem danych.
Korzystanie z widżetów IPython
Widżety to zdarzenia obiektów języka Python, które mają reprezentację w przeglądarce, często jako kontrolka, taka jak suwak lub pole tekstowe. Widżety IPython działają tylko w środowiskach języka Python. Obecnie nie są one obsługiwane w innych językach (na przykład Scala, SQL lub C#).
Kroki korzystania z widżetów IPython
Zaimportuj moduł,
ipywidgets
aby użyć platformy Widżetów Jupyter:import ipywidgets as widgets
Użyj funkcji najwyższego poziomu
display
, aby renderować widżet lub pozostawić wyrażeniewidget
typu w ostatnim wierszu komórki kodu:slider = widgets.IntSlider() display(slider)
slider = widgets.IntSlider() slider
Uruchom komórkę. Widżet zostanie wyświetlony w obszarze danych wyjściowych.
Możesz użyć wielu display()
wywołań, aby wielokrotnie renderować to samo wystąpienie widżetu, ale pozostają zsynchronizowane ze sobą:
slider = widgets.IntSlider()
display(slider)
display(slider)
Aby renderować dwa widżety niezależne 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żetu | Widgety |
---|---|
Liczbowe | IntSlider , FloatSlider , , , FloatRangeSlider BoundedIntText IntText IntRangeSlider IntProgress FloatProgress BoundedFloatText FloatLogSlider FloatText |
Wartość logiczna | ToggleButton , , Checkbox Valid |
Wybór | Dropdown , RadioButtons , , Select , SelectionSlider , SelectionRangeSlider , , ToggleButtons SelectMultiple |
String | Text , Text area , , Combobox , Label Password , HTML , , Image HTML Math Button |
Odtwórz (animacja) | Date picker , , Color picker Controller |
Kontener/układ | Box , HBox , , VBox , GridBox , Accordion , , Tabs Stacked |
Znane ograniczenia
W poniższej tabeli wymieniono widżety, które nie są obecnie obsługiwane, wraz z obejściami:
Funkcje Rozwiązanie Output
widżetZamiast tego możesz użyć print()
funkcji , aby zapisać tekst w plikustdout
.widgets.jslink()
Możesz użyć widgets.link()
funkcji , aby połączyć dwa podobne widżety.FileUpload
widżetBrak dostępnych. Funkcja globalna
display
udostępniana przez usługę Azure Synapse Analytics nie obsługuje wyświetlania wielu widżetów w jednym wywołaniu (czylidisplay(a, b)
). To zachowanie różni się od funkcji IPythondisplay
.Jeśli zamkniesz notes zawierający widżet IPython, nie możesz wyświetlić widżetu ani wchodzić z nim w interakcję, dopóki nie uruchomisz odpowiedniej komórki ponownie.
Zapisywanie notesów
Możesz zapisać jeden notes lub wszystkie notesy w obszarze roboczym:
Aby zapisać zmiany wprowadzone w jednym notesie, wybierz przycisk Publikuj na pasku poleceń notesu.
Aby zapisać wszystkie notesy w obszarze roboczym, wybierz przycisk Opublikuj wszystko na pasku poleceń obszaru roboczego.
W okienku Właściwości notesu można skonfigurować, czy podczas zapisywania mają być uwzględniane dane wyjściowe komórki.
Używanie poleceń magic
W notesach usługi Synapse można używać znanych poleceń magicznych programu Jupyter. Przejrzyj poniższe listy aktualnie dostępnych poleceń magic. Poinformuj nas o swoich przypadkach użycia w usłudze GitHub , abyśmy mogli nadal tworzyć więcej poleceń magicznych, aby spełnić Twoje potrzeby.
Uwaga
Tylko następujące polecenia magic są obsługiwane w potokach usługi Synapse: %%pyspark
, %%spark
, %%csharp
, %%sql
.
Dostępne polecenia magic dla wierszy:
%lsmagic
, , %time
, %timeit
, %history
, , %run
%load
Dostępne polecenia magic dla komórek:
%%time
, %%timeit
, , , %%sql
%%html
%%writefile
%%pyspark
%%spark
%%csharp
%%capture
%%configure
Odwołanie do nieopublikowanego notesu
Odwołanie do nieopublikowanego notesu jest przydatne, gdy chcesz debugować lokalnie. Po włączeniu tej funkcji uruchomienie notesu pobiera bieżącą zawartość w pamięci podręcznej sieci Web. Jeśli uruchomisz komórkę zawierającą instrukcję notesu referencyjnego, odwołujesz się do notesów prezentowania w bieżącej przeglądarce notesów zamiast zapisanej wersji w klastrze. Inne notesy mogą odwoływać się do zmian w edytorze notesów bez konieczności publikowania (trybu na żywo) lub zatwierdzania zmian (tryb Git). Korzystając z tego podejścia, można zapobiec zanieczyszczeniu wspólnych bibliotek podczas procesu tworzenia lub debugowania.
Możesz włączyć odwoływanie się do nieopublikowanego notesu, zaznaczając odpowiednie pole wyboru w okienku Właściwości .
W poniższej tabeli porównaliśmy przypadki. Mimo że polecenie %run i mssparkutils.notebook.run ma takie samo zachowanie, w tabeli użyto %run
przykładu.
Przypadek | Wyłącz | Włącz |
---|---|---|
Tryb na żywo | ||
Nb1 (opublikowany) %run Nb1 |
Uruchamianie opublikowanej wersji Nb1 | Uruchamianie opublikowanej wersji Nb1 |
Nb1 (nowy) %run Nb1 |
Błąd | Uruchamianie nowej Nb1 |
Nb1 (wcześniej opublikowane, edytowane) %run Nb1 |
Uruchamianie opublikowanej wersji Nb1 | Uruchamianie edytowanej wersji Nb1 |
Tryb Git | ||
Nb1 (opublikowany) %run Nb1 |
Uruchamianie opublikowanej wersji Nb1 | Uruchamianie opublikowanej wersji Nb1 |
Nb1 (nowy) %run Nb1 |
Błąd | Uruchamianie nowej Nb1 |
Nb1 (nieopublikowany, zatwierdzony) %run Nb1 |
Błąd | Uruchamianie zatwierdzonego Nb1 |
Nb1 (wcześniej opublikowane, zatwierdzone) %run Nb1 |
Uruchamianie opublikowanej wersji Nb1 | Uruchamianie zatwierdzonej wersji Nb1 |
Nb1 (wcześniej opublikowany, nowy w bieżącej gałęzi) %run Nb1 |
Uruchamianie opublikowanej wersji Nb1 | Uruchamianie nowej Nb1 |
Nb1 (nieopublikowany, wcześniej zatwierdzony, edytowany) %run Nb1 |
Błąd | Uruchamianie edytowanej wersji Nb1 |
Nb1 (wcześniej opublikowane i zatwierdzone, edytowane) %run Nb1 |
Uruchamianie opublikowanej wersji Nb1 | Uruchamianie edytowanej wersji Nb1 |
Podsumowując:
- Jeśli wyłączysz odwoływanie się do nieopublikowanego notesu, zawsze uruchom opublikowaną wersję.
- Jeśli włączysz odwoływanie się do nieopublikowanego notesu, uruchomienie odwołania zawsze przyjmuje bieżącą wersję notesu wyświetlaną w środowisku użytkownika notesu.
Zarządzanie aktywnymi sesjami
Możesz ponownie użyć sesji notesu bez konieczności uruchamiania nowych. W notesach usługi Synapse możesz zarządzać aktywnymi sesjami na jednej liście. Aby otworzyć listę, wybierz wielokropek (...), a następnie wybierz pozycję Zarządzaj sesjami.
Okienko Aktywne sesje zawiera listę wszystkich sesji w bieżącym obszarze roboczym, który został uruchomiony z poziomu notesu. Lista zawiera informacje o sesji i odpowiednie notesy. Dostępne są tutaj akcje Odłączanie za pomocą notesu, Zatrzymywanie sesji i Wyświetlanie w monitorowaniu . Możesz również połączyć wybrany notes z aktywną sesją, która została uruchomiona z innego notesu. Sesja jest następnie odłączona od poprzedniego notesu (jeśli nie jest bezczynna) i dołączona do bieżącego notesu.
Używanie dzienników języka Python w notesie
Dzienniki języka Python można znaleźć i ustawić różne poziomy i formaty dziennika przy użyciu następującego przykładowego kodu:
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 the 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 uses 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 uses 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
Notesy usługi Synapse obsługują polecenie %history
magic, aby wydrukować historię poleceń wejściowych dla bieżącej sesji. Polecenie %history
magic jest podobne do standardowego polecenia Jupyter IPython i działa w przypadku wielu kontekstów językowych w notesie.
%history [-n] [range [range ...]]
W poprzednim kodzie -n
jest numer wykonywania wydruku. Wartość range
może być:
N
: Drukuj kod wykonanejNth
komórki.M-N
: DrukujMth
kod z obiektu do wykonanejNth
komórki.
Aby na przykład wydrukować historię danych wejściowych z pierwszej do drugiej wykonanej komórki, użyj polecenia %history -n 1-2
.
Integrowanie notesu
Dodawanie notesu do potoku
Aby dodać notes do istniejącego potoku lub utworzyć nowy potok, wybierz przycisk Dodaj do potoku w prawym górnym rogu.
Wyznaczanie komórki parametru
Aby sparametryzować notes, wybierz wielokropek (...), aby uzyskać dostęp do większej liczby poleceń na pasku narzędzi komórki. Następnie wybierz pozycję Przełącz komórkę parametru, aby wyznaczyć komórkę jako komórkę parametru.
Usługa Azure Data Factory wyszukuje komórkę parametrów i traktuje tę komórkę jako domyślną dla parametrów przekazywanych w czasie wykonywania. Aparat wykonywania dodaje nową komórkę pod komórką parametrów z parametrami wejściowymi, aby zastąpić wartości domyślne.
Przypisywanie wartości parametrów z potoku
Po utworzeniu notesu z parametrami możesz uruchomić go z potoku przy użyciu działania notesu usługi Synapse. 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 zmiennych systemowych.
Używanie skrótów
Podobnie jak w przypadku notesów Jupyter Notebook, notesy usługi Synapse 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 usługi Synapse obsługują następujące dwa tryby dla komórki kodu:
Tryb polecenia: komórka jest w trybie polecenia, gdy żaden kursor tekstowy nie wyświetla monitu 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ź tryb polecenia, wybierając Esc lub za pomocą myszy, aby wybrać poza obszarem edytora komórki.
Tryb edycji: gdy komórka jest w trybie edycji, kursor tekstowy monituje o wpisenie w komórce. Wprowadź tryb edycji, wybierając Enter lub za pomocą myszy, aby wybrać obszar edytora komórki.
skrótów w trybie polecenia
Akcja | Skrót do notesu usługi Synapse |
---|---|
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
Akcja | Skrót do notesu usługi Synapse |
---|---|
Przenieś kursor w górę | W górę |
Przenieś kursor w dół | W dół |
Cofnij | Ctrl+Z |
Ponów | Ctrl+Y |
Komentarz/usuwanie komentarza | Ctrl+/ |
Usuń wyraz przed | Ctrl+Backspace |
Usuń wyraz po | Ctrl+Delete |
Przejdź do początku komórki | CTRL+Home |
Przejdź do końca komórki | CTRL+End |
Przejdź jeden wyraz w lewo | Ctrl+Left |
Przejdź jeden wyraz w prawo | Ctrl+Right |
Wybierz wszystko | Ctrl+A |
Wcięcie | Ctrl+] |
Wcięcie | Ctrl+[ |
Przełączanie do trybu poleceń | Esc |
Powiązana zawartość
- Przykładowe notesy usługi Synapse
- Szybki start: tworzenie puli platformy Apache Spark w usłudze Azure Synapse Analytics przy użyciu narzędzi internetowych
- Co to jest platforma Apache Spark w usłudze Azure Synapse Analytics?
- Korzystanie z platformy .NET for Apache Spark z usługą Azure Synapse Analytics
- Dokumentacja platformy .NET dla platformy Apache Spark
- Dokumentacja usługi Azure Synapse Analytics