Condividi tramite


Esercitazione: creare una definizione di processo Apache Spark in Synapse Studio

Questa esercitazione illustra come usare Synapse Studio per creare definizioni di processi Apache Spark e quindi inviarle a un pool di Apache Spark serverless.

Questa esercitazione illustra le attività seguenti:

  • Creare una definizione di processo Apache Spark per PySpark (Python)
  • Creare una definizione di processo Apache Spark per Spark (Scala)
  • Creare una definizione di processo Apache Spark per .NET Spark(C#/F#)
  • Creare una definizione di processo importando un file JSON
  • Esportare un file di definizione di processo Apache Spark a un percorso locale
  • Inviare una definizione di processo Apache Spark come processo batch
  • Aggiungere una definizione di processo Apache Spark a una pipeline

Prerequisiti

Prima di iniziare l'esercitazione, verificare che siano soddisfatti i requisiti seguenti:

  • Un'area di lavoro di Azure Synapse Analytics. Per le istruzioni, vedere Creare un'area di lavoro di Azure Synapse Analytics.
  • Un pool di Apache Spark serverless.
  • Account di archiviazione Azure Data Lake Storage Gen2. È necessario essere il Collaboratore dei dati del BLOB di archiviazione del file system di ADLS Gen2 che si desidera usare. Se non lo si è, è necessario aggiungere l'autorizzazione manualmente.
  • Se non si vuole usare l'account di archiviazione predefinito dell'area di lavoro, collegare l'account di archiviazione di ADLS Gen2 richiesto in Synapse Studio.

Creare una definizione di processo Apache Spark per PySpark (Python)

In questa sezione viene creata una definizione di processo Apache Spark per PySpark (Python).

  1. Aprire Synapse Studio.

  2. È possibile passare ai file di esempio per la creazione di definizioni di processo Apache Spark per scaricare i file di esempio per python.zip, quindi decomprimere il pacchetto compresso ed estrarre i file wordcount.py e shakespeare.txt.

    sample files

  3. Selezionare Dati ->Collegati ->Azure Data Lake Storage Gen2, quindi caricare wordcount.py e shakespeare.txt nel file system di ADLS Gen2.

    upload Python file

  4. Selezionare l'hub Sviluppo, fare clic sull'icona '+' e selezionare Definizione di processo Spark per creare una nuova definizione di processo Spark.

    create new definition for python

  5. Selezionare PySpark (Python) nell'elenco a discesa del linguaggio nella finestra principale della definizione di processo Apache Spark.

    select python

  6. Immettere le informazioni per la definizione di processo Apache Spark.

    Proprietà Descrizione
    Nome definizione processo Specificare un nome per la definizione di processo Apache Spark. Questo nome può essere aggiornato in qualsiasi momento fino a quando non viene pubblicato.
    Esempio: job definition sample
    File di definizione principale File principale usato per il processo. Selezionare un file PY dalla risorsa di archiviazione. È possibile selezionare Carica file per caricare il file in un account di archiviazione.
    Esempio: abfss://…/path/to/wordcount.py
    Argomenti della riga di comando Argomenti facoltativi per il processo.
    Esempio: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Nota: due argomenti per la stessa definizione di processo di esempio sono separati da uno spazio.
    File di riferimento File aggiuntivi usati come riferimento nel file di definizione principale. È possibile selezionare Carica file per caricare il file in un account di archiviazione.
    Pool Spark Il processo verrà inviato al pool di Apache Spark selezionato.
    Versione di Spark Versione di Apache Spark in esecuzione nel pool di Apache Spark.
    Executors Numero di executor da assegnare al pool di Apache Spark specificato per il processo.
    Dimensioni executor Numero di core e memoria da usare per gli executor indicati nel pool di Apache Spark specificato per il processo.
    Dimensioni driver Numero di core e memoria da usare per il driver indicato nel pool di Apache Spark specificato per il processo.
    Configurazione di Apache Spark Personalizzare le configurazioni aggiungendo le proprietà seguenti. Se non si aggiunge una proprietà, Azure Synapse userà il valore predefinito, se applicabile.

    Set the value of the Spark job definition for Python

  7. Selezionare Pubblica per salvare la definizione di processo Apache Spark.

    publish py definition

Creare una definizione di processo Apache Spark per Apache Spark (Scala)

In questa sezione viene creata una definizione di processo Apache Spark per Apache Spark (Scala).

  1. Aprire Azure Synapse Studio.

  2. È possibile passare ai file di esempio per la creazione di definizioni di processo Apache Spark per scaricare i file di esempio per scala.zip, quindi decomprimere il pacchetto compresso ed estrarre i file wordcount.jar e shakespeare.txt.

    sample files scala

  3. Selezionare Dati ->Collegati ->Azure Data Lake Storage Gen2, quindi caricare wordcount.jar e shakespeare.txt nel file system di ADLS Gen2.

    prepare scala structure

  4. Selezionare l'hub Sviluppo, fare clic sull'icona '+' e selezionare Definizione di processo Spark per creare una nuova definizione di processo Spark. L'immagine di esempio è identica a quella del passaggio 4 di Creare una definizione di processo Apache Spark (Python) per PySpark.

  5. Selezionare Spark (Scala) nell'elenco a discesa del linguaggio nella finestra principale della definizione di processo Apache Spark.

    select scala

  6. Immettere le informazioni per la definizione di processo Apache Spark. È possibile copiare le informazioni di esempio.

    Proprietà Descrizione
    Nome definizione processo Specificare un nome per la definizione di processo Apache Spark. Questo nome può essere aggiornato in qualsiasi momento fino a quando non viene pubblicato.
    Esempio: scala
    File di definizione principale File principale usato per il processo. Selezionare un file JAR dalla risorsa di archiviazione. È possibile selezionare Carica file per caricare il file in un account di archiviazione.
    Esempio: abfss://…/path/to/wordcount.jar
    Nome della classe principale Identificatore completo o classe principale inclusa nel file di definizione principale.
    Esempio: WordCount
    Argomenti della riga di comando Argomenti facoltativi per il processo.
    Esempio: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Nota: due argomenti per la stessa definizione di processo di esempio sono separati da uno spazio.
    File di riferimento File aggiuntivi usati come riferimento nel file di definizione principale. È possibile selezionare Carica file per caricare il file in un account di archiviazione.
    Pool Spark Il processo verrà inviato al pool di Apache Spark selezionato.
    Versione di Spark Versione di Apache Spark in esecuzione nel pool di Apache Spark.
    Executors Numero di executor da assegnare al pool di Apache Spark specificato per il processo.
    Dimensioni executor Numero di core e memoria da usare per gli executor indicati nel pool di Apache Spark specificato per il processo.
    Dimensioni driver Numero di core e memoria da usare per il driver indicato nel pool di Apache Spark specificato per il processo.
    Configurazione di Apache Spark Personalizzare le configurazioni aggiungendo le proprietà seguenti. Se non si aggiunge una proprietà, Azure Synapse userà il valore predefinito, se applicabile.

    Set the value of the Spark job definition for scala

  7. Selezionare Pubblica per salvare la definizione di processo Apache Spark.

    publish scala definition

Creare una definizione di processo Apache Spark per .NET Spark(C#/F#)

In questa sezione viene creata una definizione di processo Apache Spark per .NET Spark(C#/F#).

  1. Aprire Azure Synapse Studio.

  2. È possibile passare ai file di esempio per la creazione di definizioni di processo Apache Spark per scaricare i file di esempio per dotnet.zip, quindi decomprimere il pacchetto compresso ed estrarre i file wordcount.zip e shakespeare.txt.

    sample dotnet

  3. Selezionare Dati ->Collegati ->Azure Data Lake Storage Gen2, quindi caricare wordcount.zip e shakespeare.txt nel file system di ADLS Gen2.

    prepare dotnet structure

  4. Selezionare l'hub Sviluppo, fare clic sull'icona '+' e selezionare Definizione di processo Spark per creare una nuova definizione di processo Spark. L'immagine di esempio è identica a quella del passaggio 4 di Creare una definizione di processo Apache Spark (Python) per PySpark.

  5. Selezionare .NET Spark (C#/F#) nell'elenco a discesa del linguaggio nella finestra principale della definizione di processo Apache Spark.

    select dotnet

  6. Immettere le informazioni per la definizione di processo Apache Spark. È possibile copiare le informazioni di esempio.

    Proprietà Descrizione
    Nome definizione processo Specificare un nome per la definizione di processo Apache Spark. Questo nome può essere aggiornato in qualsiasi momento fino a quando non viene pubblicato.
    Esempio: dotnet
    File di definizione principale File principale usato per il processo. Selezionare un file con estensione zip contenente l'applicazione .NET per Apache Spark (ovvero il file eseguibile principale, le DLL che includono le funzioni definite dall'utente e altri file necessari) dall'archivio. È possibile selezionare Carica file per caricare il file in un account di archiviazione.
    Esempio: abfss://…/path/to/wordcount.zip
    File eseguibile principale File eseguibile principale nel file ZIP della definizione principale.
    Esempio: WordCount
    Argomenti della riga di comando Argomenti facoltativi per il processo.
    Esempio: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    Nota: due argomenti per la stessa definizione di processo di esempio sono separati da uno spazio.
    File di riferimento Altri file necessari ai nodi di lavoro per l'esecuzione dell'applicazione .NET per Apache Spark non inclusi nel file con estensione zip della definizione principale (ovvero file con estensione jar dipendenti, DLL di funzioni definite dall'utente aggiuntive e altri file di configurazione). È possibile selezionare Carica file per caricare il file in un account di archiviazione.
    Pool Spark Il processo verrà inviato al pool di Apache Spark selezionato.
    Versione di Spark Versione di Apache Spark in esecuzione nel pool di Apache Spark.
    Executors Numero di executor da assegnare al pool di Apache Spark specificato per il processo.
    Dimensioni executor Numero di core e memoria da usare per gli executor indicati nel pool di Apache Spark specificato per il processo.
    Dimensioni driver Numero di core e memoria da usare per il driver indicato nel pool di Apache Spark specificato per il processo.
    Configurazione di Apache Spark Personalizzare le configurazioni aggiungendo le proprietà seguenti. Se non si aggiunge una proprietà, Azure Synapse userà il valore predefinito, se applicabile.

    Set the value of the Spark job definition for dotnet

  7. Selezionare Pubblica per salvare la definizione di processo Apache Spark.

    publish dotnet definition

Nota

Per la configurazione di Apache Spark, se la definizione del processo Apache Spark di configurazione Apache Spark non esegue operazioni speciali, durante l'esecuzione del processo verrà usata la configurazione predefinita.

Creare una definizione di processo Apache Spark importando un file JSON

È possibile importare un file JSON locale esistente nell'area di lavoro di Azure Synapse dal menu Azioni (...) di Esplora definizione di processo Apache Spark per creare una nuova definizione di processo Apache Spark.

create import definition

La definizione del processo Spark è pienamente compatibile con l'API Livy. È possibile aggiungere altri parametri per altre proprietà Livy (Livy Docs - API REST (apache.org) nel file JSON locale. È anche possibile specificare i parametri correlati alla configurazione di Spark nella proprietà config, come illustrato di seguito. È quindi possibile importare di nuovo il file JSON per creare una nuova definizione di processo Apache Spark per il processo batch. Esempio JSON per l'importazione della definizione 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"
  }
}

other livy properties

Esportare un file di definizione di processo Apache Spark esistente

È possibile esportare i file di definizione del processo Apache Spark esistenti in locale dal menu Azioni (...) di Esplora file. È possibile aggiornare ulteriormente il file JSON per altre proprietà Livy e importarlo nuovamente per creare una nuova definizione del processo, se necessario.

create export definition

create export definition 2

Inviare una definizione di processo Apache Spark come processo batch

Dopo aver creato una definizione di processo Apache Spark, è possibile inviarla a un pool di Apache Spark. Assicurarsi di essere il Collaboratore dei dati del BLOB di archiviazione del file system di ADLS Gen2 che si desidera usare. Se non lo si è, è necessario aggiungere l'autorizzazione manualmente.

Scenario 1: inviare la definizione di processo Apache Spark

  1. Aprire una finestra di definizione di processo Apache Spark selezionandola.

    Open spark job definition to submit

  2. Selezionare il pulsante Invia per inviare il progetto al pool di Apache Spark. È possibile selezionare la scheda Spark monitoring URL (URL di monitoraggio Spark) per visualizzare la query su log dell'applicazione Apache Spark.

    Select submit button to submit spark job definition

    The Spark Submission dialog box

Scenario 2: visualizzare lo stato di esecuzione del processo Apache Spark

  1. Selezionare Monitoraggio e quindi l'opzione relativa alle applicazioni Apache Spark. Verrà visualizzata l'applicazione Apache Spark inviata.

    View Spark application

  2. Selezionare quindi un'applicazione Apache Spark. Viene visualizzata la finestra del processo SparkJobDefinition. Qui è possibile visualizzare lo stato di esecuzione del processo.

    View spark application LogQuery

Scenario 3: verificare il file di output

  1. Selezionare Dati ->Collegati ->Azure Data Lake Storage Gen2 (hozhaobdbj), aprire la cartella result creata in precedenza e verificare se l'output è stato generato.

    View output file

Aggiungere una definizione di processo Apache Spark a una pipeline

In questa sezione viene aggiunta una definizione di processo Apache Spark a una pipeline.

  1. Aprire una definizione di processo Apache Spark esistente.

  2. Selezionare l'icona nell'angolo in alto a destra della finestra della definizione di processo Apache Spark e selezionare Existing Pipeline (Pipeline esistente) o New pipeline (Nuova pipeline). Per altre informazioni, fare riferimento alla pagina Pipeline.

    add to pipeline1

    add to pipeline2

Passaggi successivi

Successivamente sarà possibile usare Azure Synapse Studio per creare set di dati di Power BI e gestire i dati di Power BI. Per altre informazioni, vedere l'articolo Collegamento di un'area di lavoro Power BI a un'area di lavoro di Synapse.