Samouczek: tworzenie definicji zadania platformy Apache Spark w Synapse Studio

W tym samouczku pokazano, jak używać Synapse Studio do tworzenia definicji zadań platformy Apache Spark, a następnie przesyłać je do bezserwerowej puli platformy Apache Spark.

Ten samouczek obejmuje następujące zadania:

  • Tworzenie definicji zadania platformy Apache Spark dla programu PySpark (Python)
  • Tworzenie definicji zadania platformy Apache Spark dla platformy Spark (Scala)
  • Tworzenie definicji zadania platformy Apache Spark dla platformy .NET Spark (C#/F#)
  • Tworzenie definicji zadania przez zaimportowanie pliku JSON
  • Eksportowanie pliku definicji zadania platformy Apache Spark do lokalizacji lokalnej
  • Przesyłanie definicji zadania platformy Apache Spark jako zadania wsadowego
  • Dodawanie definicji zadania platformy Apache Spark do potoku

Wymagania wstępne

Przed rozpoczęciem pracy z tym samouczkiem upewnij się, że zostały spełnione następujące wymagania:

  • Obszar roboczy usługi Azure Synapse Analytics. Aby uzyskać instrukcje, zobacz Tworzenie obszaru roboczego usługi Azure Synapse Analytics.
  • Bezserwerowa pula platformy Apache Spark.
  • Konto magazynu usługi ADLS Gen2. Musisz być współautorem danych obiektu blob usługi Storage w systemie plików usługi ADLS Gen2, z którym chcesz pracować. Jeśli tak nie jest, musisz ręcznie dodać uprawnienie.
  • Jeśli nie chcesz używać domyślnego magazynu obszaru roboczego, połącz wymagane konto magazynu usługi ADLS Gen2 w Synapse Studio.

Tworzenie definicji zadania platformy Apache Spark dla programu PySpark (Python)

W tej sekcji utworzysz definicję zadania platformy Apache Spark dla programu PySpark (Python).

  1. Otwórz Synapse Studio.

  2. Aby pobraćprzykładowe pliki dla python.zip, następnie rozpakuj skompresowany pakiet i wyodrębnij pliki wordcount.py i shakespeare.txt plików.

    przykładowe pliki

  3. Wybierz pozycję Dane ->Linked ->Azure Data Lake Storage Gen2 i przekaż wordcount.py i shakespeare.txt do systemu plików usługi ADLS Gen2.

    przekazywanie pliku języka Python

  4. Wybierz pozycję Opracowywanie centrum, wybierz ikonę "+" i wybierz pozycję Definicja zadania platformy Spark , aby utworzyć nową definicję zadania platformy Spark.

    tworzenie nowej definicji dla języka Python

  5. Wybierz pozycję PySpark (Python) z listy rozwijanej Język w oknie głównym definicji zadania platformy Apache Spark.

    wybieranie języka Python

  6. Wypełnij informacje dotyczące definicji zadania platformy Apache Spark.

    Właściwość Opis
    Nazwa definicji zadania Wprowadź nazwę definicji zadania platformy Apache Spark. Ta nazwa może zostać zaktualizowana w dowolnym momencie, dopóki nie zostanie opublikowana.
    Przykładowe: job definition sample
    Plik definicji głównej Główny plik używany do zadania. Wybierz plik PY z magazynu. Możesz wybrać pozycję Przekaż plik, aby przekazać plik do konta magazynu.
    Przykładowe: abfss://…/path/to/wordcount.py
    Argumenty wiersza polecenia Opcjonalne argumenty zadania.
    Przykładowe: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Uwaga: dwa argumenty dla przykładowej definicji zadania są oddzielone spacją.
    Pliki referencyjne Dodatkowe pliki używane do celów referencyjnych w pliku definicji głównej. Możesz wybrać pozycję Przekaż plik, aby przekazać plik do konta magazynu.
    Pula platformy Spark Zadanie zostanie przesłane do wybranej puli platformy Apache Spark.
    Wersja platformy Spark Wersja platformy Apache Spark uruchomiona przez pulę platformy Apache Spark.
    Funkcje wykonawcze Liczba funkcji wykonawczych, które mają być podane w określonej puli platformy Apache Spark dla zadania.
    Rozmiar funkcji wykonawczej Liczba rdzeni i pamięci do użycia dla funkcji wykonawczych podanych w określonej puli platformy Apache Spark dla zadania.
    Rozmiar sterownika Liczba rdzeni i pamięci do użycia dla sterownika podanego w określonej puli platformy Apache Spark dla zadania.
    Konfiguracja platformy Apache Spark Dostosuj konfiguracje, dodając właściwości poniżej. Jeśli nie dodasz właściwości, Azure Synapse użyje wartości domyślnej, jeśli ma to zastosowanie.

    Ustawianie wartości definicji zadania platformy Spark dla języka Python

  7. Wybierz pozycję Publikuj, aby zapisać definicję zadania platformy Apache Spark.

    publikowanie definicji py

Tworzenie definicji zadania platformy Apache Spark dla platformy Apache Spark (Scala)

W tej sekcji utworzysz definicję zadania platformy Apache Spark dla platformy Apache Spark (Scala).

  1. Otwórz program Azure Synapse Studio.

  2. Możesz przejść do przykładowych plików do tworzenia definicji zadań platformy Apache Spark , aby pobrać przykładowe pliki dla scala.zip, a następnie rozpakuj skompresowany pakiet i wyodrębnij pliki wordcount.jar i shakespeare.txt .

    przykładowe pliki scala

  3. Wybierz pozycję Dane ->Linked ->Azure Data Lake Storage Gen2 i przekaż plik wordcount.jar i shakespeare.txt do systemu plików usługi ADLS Gen2.

    przygotowywanie struktury scala

  4. Wybierz pozycję Opracowywanie centrum, wybierz ikonę "+" i wybierz pozycję Definicja zadania platformy Spark , aby utworzyć nową definicję zadania platformy Spark. (Przykładowy obraz jest taki sam jak krok 4 sekcji Tworzenie definicji zadania platformy Apache Spark (Python) dla programu PySpark).

  5. Wybierz pozycję Spark(Scala) z listy rozwijanej Język w oknie głównym definicji zadania platformy Apache Spark.

    wybierz pozycję scala

  6. Wypełnij informacje dotyczące definicji zadania platformy Apache Spark. Możesz skopiować przykładowe informacje.

    Właściwość Opis
    Nazwa definicji zadania Wprowadź nazwę definicji zadania platformy Apache Spark. Ta nazwa może zostać zaktualizowana w dowolnym momencie, dopóki nie zostanie opublikowana.
    Przykładowe: scala
    Plik definicji głównej Główny plik używany do zadania. Wybierz plik JAR z magazynu. Możesz wybrać pozycję Przekaż plik, aby przekazać plik do konta magazynu.
    Przykładowe: abfss://…/path/to/wordcount.jar
    Nazwa głównej klasy W pełni kwalifikowany identyfikator lub klasa główna, która znajduje się w pliku definicji głównej.
    Przykładowe: WordCount
    Argumenty wiersza polecenia Opcjonalne argumenty zadania.
    Przykładowe: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Uwaga: dwa argumenty dla przykładowej definicji zadania są oddzielone spacją.
    Pliki referencyjne Dodatkowe pliki używane do celów referencyjnych w pliku definicji głównej. Możesz wybrać pozycję Przekaż plik, aby przekazać plik do konta magazynu.
    Pula platformy Spark Zadanie zostanie przesłane do wybranej puli platformy Apache Spark.
    Wersja platformy Spark Wersja platformy Apache Spark uruchomiona przez pulę platformy Apache Spark.
    Funkcje wykonawcze Liczba funkcji wykonawczych, które mają być podane w określonej puli platformy Apache Spark dla zadania.
    Rozmiar funkcji wykonawczej Liczba rdzeni i pamięci do użycia dla funkcji wykonawczych podanych w określonej puli platformy Apache Spark dla zadania.
    Rozmiar sterownika Liczba rdzeni i pamięci do użycia dla sterownika podanego w określonej puli platformy Apache Spark dla zadania.
    Konfiguracja platformy Apache Spark Dostosuj konfiguracje, dodając właściwości poniżej. Jeśli nie dodasz właściwości, Azure Synapse użyje wartości domyślnej, jeśli ma to zastosowanie.

    Ustawianie wartości definicji zadania platformy Spark dla języka scala

  7. Wybierz pozycję Publikuj, aby zapisać definicję zadania platformy Apache Spark.

    publikowanie definicji scala

Tworzenie definicji zadania platformy Apache Spark dla platformy .NET Spark(C#/F#)

W tej sekcji utworzysz definicję zadania platformy Apache Spark dla platformy .NET Spark(C#/F#).

  1. Otwórz program Azure Synapse Studio.

  2. Aby pobraćprzykładowe pliki dla dotnet.zip, następnie rozpakuj skompresowany pakiet, a następnie wyodrębnij pliki wordcount.zip i shakespeare.txt .

    przykładowa dotnet

  3. Wybierz pozycję Dane ->Linked ->Azure Data Lake Storage Gen2 i przekaż wordcount.zip i shakespeare.txt do systemu plików usługi ADLS Gen2.

    przygotowywanie struktury dotnet

  4. Wybierz pozycję Opracowywanie centrum, wybierz ikonę "+" i wybierz pozycję Definicja zadania platformy Spark , aby utworzyć nową definicję zadania platformy Spark. (Przykładowy obraz jest taki sam jak krok 4 sekcji Tworzenie definicji zadania platformy Apache Spark (Python) dla programu PySpark).

  5. Wybierz pozycję .NET Spark(C#/F#) z listy rozwijanej Język w oknie głównym Definicji zadania platformy Apache Spark.

    wybierz pozycję dotnet

  6. Wypełnij informacje dotyczące definicji zadania platformy Apache Spark. Możesz skopiować przykładowe informacje.

    Właściwość Opis
    Nazwa definicji zadania Wprowadź nazwę definicji zadania platformy Apache Spark. Ta nazwa może zostać zaktualizowana w dowolnym momencie, dopóki nie zostanie opublikowana.
    Przykładowe: dotnet
    Plik definicji głównej Główny plik używany do zadania. Wybierz plik ZIP zawierający aplikację platformy .NET dla platformy Apache Spark (czyli główny plik wykonywalny, biblioteki DLL zawierające funkcje zdefiniowane przez użytkownika i inne wymagane pliki) z magazynu. Możesz wybrać pozycję Przekaż plik, aby przekazać plik do konta magazynu.
    Przykładowe: abfss://…/path/to/wordcount.zip
    Główny plik wykonywalny Główny plik wykonywalny w głównym pliku ZIP definicji.
    Przykładowe: WordCount
    Argumenty wiersza polecenia Opcjonalne argumenty zadania.
    Przykładowe: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Uwaga: dwa argumenty dla przykładowej definicji zadania są oddzielone spacją.
    Pliki referencyjne Dodatkowe pliki wymagane przez węzły procesu roboczego do wykonywania aplikacji platformy .NET dla platformy Apache Spark, które nie są uwzględnione w głównym pliku ZIP definicji (czyli zależne pliki JAR, dodatkowe biblioteki DLL funkcji zdefiniowanej przez użytkownika i inne pliki konfiguracji). Możesz wybrać pozycję Przekaż plik, aby przekazać plik do konta magazynu.
    Pula platformy Spark Zadanie zostanie przesłane do wybranej puli platformy Apache Spark.
    Wersja platformy Spark Wersja platformy Apache Spark uruchomiona przez pulę platformy Apache Spark.
    Funkcje wykonawcze Liczba funkcji wykonawczych, które mają być podane w określonej puli platformy Apache Spark dla zadania.
    Rozmiar funkcji wykonawczej Liczba rdzeni i pamięci do użycia dla funkcji wykonawczych podanych w określonej puli platformy Apache Spark dla zadania.
    Rozmiar sterownika Liczba rdzeni i pamięci do użycia dla sterownika podanego w określonej puli platformy Apache Spark dla zadania.
    Konfiguracja platformy Apache Spark Dostosuj konfiguracje, dodając właściwości poniżej. Jeśli nie dodasz właściwości, Azure Synapse użyje wartości domyślnej, jeśli ma to zastosowanie.

    Ustawianie wartości definicji zadania platformy Spark dla platformy dotnet

  7. Wybierz pozycję Publikuj, aby zapisać definicję zadania platformy Apache Spark.

    publikowanie definicji dotnet

Uwaga

W przypadku konfiguracji platformy Apache Spark, jeśli definicja zadania platformy Apache Spark konfiguracji platformy Apache Spark nie wykonuje żadnych specjalnych czynności, podczas uruchamiania zadania zostanie użyta domyślna konfiguracja.

Tworzenie definicji zadania platformy Apache Spark przez zaimportowanie pliku JSON

Istniejący lokalny plik JSON można zaimportować do obszaru roboczego Azure Synapse z menu Akcje (...) Eksploratora definicji zadania platformy Apache Spark w celu utworzenia nowej definicji zadania platformy Apache Spark.

tworzenie definicji importu

Definicja zadania platformy Spark jest w pełni zgodna z interfejsem API usługi Livy. Możesz dodać dodatkowe parametry dla innych właściwości usługi Livy (Livy Docs — interfejs API REST (apache.org) w lokalnym pliku JSON. Możesz również określić parametry powiązane z konfiguracją platformy Spark we właściwości konfiguracji, jak pokazano poniżej. Następnie możesz zaimportować plik JSON z powrotem, aby utworzyć nową definicję zadania platformy Apache Spark dla zadania wsadowego. Przykładowy kod JSON dla importowania definicji platformy Spark:

   {
  "targetBigDataPool": {
    "referenceName": "socdemolarge",
    "type": "BigDataPoolReference"
  },
  "requiredSparkVersion": "2.3",
  "language": "scala",
  "jobProperties": {
    "name": "robinSparkDefinitiontest",
    "file": "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/wordcount.jar",
    "className": "WordCount",
    "args": [
      "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/shakespeare.txt"
    ],
    "jars": [],
    "files": [],
    "conf": {
      "spark.dynamicAllocation.enabled": "false",
      "spark.dynamicAllocation.minExecutors": "2",
      "spark.dynamicAllocation.maxExecutors": "2"
    },
    "numExecutors": 2,
    "executorCores": 8,
    "executorMemory": "24g",
    "driverCores": 8,
    "driverMemory": "24g"
  }
}

inne właściwości usługi livy

Eksportowanie istniejącego pliku definicji zadania platformy Apache Spark

Istniejące pliki definicji zadań platformy Apache Spark można wyeksportować do lokalizacji lokalnej z menu Akcje (...) w Eksplorator plików. Możesz dodatkowo zaktualizować plik JSON pod kątem dodatkowych właściwości usługi Livy i zaimportować go z powrotem, aby utworzyć nową definicję zadania w razie potrzeby.

tworzenie definicji eksportu

tworzenie definicji eksportu 2

Przesyłanie definicji zadania platformy Apache Spark jako zadania wsadowego

Po utworzeniu definicji zadania platformy Apache Spark możesz przesłać ją do puli platformy Apache Spark. Upewnij się, że jesteś współautorem danych obiektów blob usługi Storage w systemie plików usługi ADLS Gen2, z którym chcesz pracować. Jeśli tak nie jest, musisz ręcznie dodać uprawnienie.

Scenariusz 1. Przesyłanie definicji zadania platformy Apache Spark

  1. Otwórz okno definicji zadania platformy Apache Spark, wybierając je.

    Otwieranie definicji zadania platformy Spark w celu przesłania

  2. Wybierz przycisk Prześlij, aby przesłać projekt do wybranej puli platformy Apache Spark. Możesz wybrać kartę Adres URL monitorowania platformy Spark , aby wyświetlić pozycję LogQuery aplikacji Apache Spark.

    Wybierz przycisk Prześlij, aby przesłać definicję zadania platformy Spark

    Okno dialogowe Przesyłanie platformy Spark

Scenariusz 2. Wyświetlanie postępu uruchomionego zadania platformy Apache Spark

  1. Wybierz pozycję Monitoruj, a następnie wybierz opcję Aplikacje platformy Apache Spark . Przesłaną aplikację Platformy Apache Spark można znaleźć.

    Wyświetlanie aplikacji platformy Spark

  2. Następnie wybierz aplikację Platformy Apache Spark, zostanie wyświetlone okno zadania SparkJobDefinition . Postęp wykonywania zadania można wyświetlić tutaj.

    Wyświetlanie zapytania dziennika aplikacji platformy Spark

Scenariusz 3. Sprawdzanie pliku wyjściowego

  1. Wybierz pozycję Dane ->Linked ->Azure Data Lake Storage Gen2 (hozhaobdbj), otwórz utworzony wcześniej folder wyników, możesz przejść do folderu wyników i sprawdzić, czy dane wyjściowe są generowane.

    Wyświetlanie pliku wyjściowego

Dodawanie definicji zadania platformy Apache Spark do potoku

W tej sekcji do potoku dodasz definicję zadania platformy Apache Spark.

  1. Otwórz istniejącą definicję zadania platformy Apache Spark.

  2. Wybierz ikonę w prawym górnym rogu definicji zadania platformy Apache Spark, wybierz pozycję Istniejący potok lub Nowy potok. Więcej informacji można znaleźć na stronie Potok.

    dodawanie do potoku1

    dodawanie do potoku2

Następne kroki

Następnie możesz użyć programu Azure Synapse Studio do tworzenia zestawów danych usługi Power BI i zarządzania danymi usługi Power BI. Przejdź do artykułu Łączenie obszaru roboczego usługi Power BI z obszarem roboczym usługi Synapse , aby dowiedzieć się więcej.