Condividi tramite


Guida introduttiva: Creare un pool di Apache Spark serverless in Azure Synapse Analytics con gli strumenti Web

In questa guida introduttiva si apprenderà come creare un pool di Apache Spark serverless in Azure Synapse usando gli strumenti Web. Si apprenderà quindi a connettersi al pool di Apache Spark ed eseguire query Spark SQL su file e tabelle. Apache Spark consente l'analisi rapida dei dati e il calcolo del cluster usando l'elaborazione in memoria. Per informazioni su Spark in Azure Synapse, vedere Panoramica: Apache Spark in Azure Synapse.

Importante

La fatturazione delle istanze di Spark è calcolata al minuto, sia che vengano utilizzate o meno. Assicurarsi di arrestare l'istanza di Spark al termine dell'uso o di impostare un breve timeout. Per altre informazioni, vedere la sezione Pulire le risorse di questo articolo.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Prerequisiti

Accedere al portale di Azure

Accedi al portale di Azure.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Crea un notebook

Un notebook è un ambiente interattivo che supporta vari linguaggi di programmazione. Il notebook consente di interagire con i dati, combinare il codice con markdown, testo ed eseguire visualizzazioni semplici.

  1. Nella visualizzazione del portale di Azure per l'area di lavoro di Azure Synapse da usare selezionare Avvia Synapse Studio.

  2. Dopo l'avvio di Synapse Studio, selezionare Sviluppa. Selezionare quindi l'icona "+" per aggiungere una nuova risorsa.

  3. Da qui selezionare Notebook. Viene creato e aperto un nuovo notebook con un nome generato automaticamente.

    Nuovo notebook

  4. Nella finestra Proprietà specificare un nome per il notebook.

  5. Sulla barra degli strumenti fare clic su Pubblica.

  6. Se nell'area di lavoro è presente un solo pool di Apache Spark, viene selezionato per impostazione predefinita. Usare l'elenco a discesa per selezionare il pool di Apache Spark corretto qualora non ne sia stato selezionato uno.

  7. Fare clic su Aggiungi codice. La lingua predefinita è Pyspark. Si userà una combinazione di Pyspark e Spark SQL, quindi la scelta predefinita è corretta. Altri linguaggi supportati sono Scala e .NET per Spark.

  8. Successivamente si crea un semplice oggetto DataFrame Spark da modificare. In questo caso, è possibile crearlo dal codice. Sono presenti tre righe e tre colonne:

    new_rows = [('CA',22, 45000),("WA",35,65000) ,("WA",50,85000)]
    demo_df = spark.createDataFrame(new_rows, ['state', 'age', 'salary'])
    demo_df.show()
    
  9. Ora, esegui la cella usando uno dei metodi seguenti:

    • Premere MAIUSC + INVIO.

    • Selezionare l'icona di riproduzione blu a sinistra della cella.

    • Selezionare il pulsante Esegui tutto sulla barra degli strumenti.

      Creare un oggetto frame di dati

  10. Se l'istanza del pool di Apache Spark non è già in esecuzione, viene avviata automaticamente. È possibile visualizzare lo stato dell'istanza del pool di Apache Spark sotto la cella in esecuzione e anche nel pannello di stato nella parte inferiore del notebook. A seconda delle dimensioni del pool, l'avvio dovrebbe richiedere 2-5 minuti. Al termine dell'esecuzione del codice, le informazioni sotto la cella mostrano il tempo impiegato e i dettagli dell'esecuzione. Nella cella di output vedi il risultato.

    Output dall'esecuzione di una cella

  11. I dati sono ora presenti in un dataframe da cui è possibile usare i dati in molti modi diversi. Saranno necessari in formati diversi per la parte restante di questa guida di avvio rapido.

  12. Immettere il codice seguente in un'altra cella ed eseguirlo, in questo modo viene creata una tabella Spark, un file CSV e un file Parquet tutti con copie dei dati:

     demo_df.createOrReplaceTempView('demo_df')
     demo_df.write.csv('demo_df', mode='overwrite')
     demo_df.write.parquet('abfss://<<TheNameOfAStorageAccountFileSystem>>@<<TheNameOfAStorageAccount>>.dfs.core.windows.net/demodata/demo_df', mode='overwrite')
    

    Se si usa Storage Explorer, è possibile vedere l'impatto dei due modi diversi di scrivere un file usato in precedenza. Quando non viene specificato alcun file system, viene usato il valore predefinito, in questo caso default>user>trusted-service-user>demo_df. I dati vengono salvati nel percorso del file system specificato.

    Notare che nei formati "csv" e "parquet" durante le operazioni di scrittura viene creata una directory con molti file partizionati.

    Visualizzazione dello strumento di esplorazione dell'archiviazione dell’output

    Screenshot che evidenzia il percorso >demodata> predefinito demo_df.

Eseguire istruzioni SPARK SQL

Structured Query Language (SQL) è il linguaggio più comune e ampiamente usato per l'esecuzione di query e la definizione dei dati. Spark SQL funziona come estensione di Apache Spark per l'elaborazione di dati strutturati, usando la sintassi SQL familiare.

  1. Incollare il codice seguente in una cella vuota e quindi eseguire il codice. Il comando elenca le tabelle nel pool.

    %%sql
    SHOW TABLES
    

    Quando si usa un notebook con il pool di Apache Spark di Azure Synapse, si ottiene un set di impostazioni sqlContext che è possibile usare per eseguire query usando Spark SQL. %%sql indica al notebook di usare il set di impostazioni sqlContext per eseguire la query. La query recupera le prime 10 righe da una tabella di sistema fornita con tutti i pool di Apache Spark di Azure Synapse per impostazione predefinita.

  2. Eseguire un'altra query per visualizzare i dati in demo_df.

    %%sql
    SELECT * FROM demo_df
    

    Il codice produce due celle di output, una che contiene i risultati dei dati e l'altra, che mostra la visualizzazione del lavoro.

    Per impostazione predefinita, la visualizzazione dei risultati mostra una griglia. Tuttavia, c'è un commutatore di visualizzazione sotto la griglia che consente alla visualizzazione di passare tra le visualizzazioni griglia e grafico.

    Output della query Spark in Azure Synapse

  3. Nell'interruttore Visualizza selezionare Grafico.

  4. Selezionare l'icona Visualizza opzioni sul lato destro.

  5. Nel campo Tipo di grafico selezionare "grafico a barre".

  6. Nel campo colonna Asse X selezionare "stato".

  7. Nel campo colonna asse Y selezionare "salary".

  8. Nel campo Aggregazione selezionare "AVG".

  9. Selezionare Applica.

    Output del grafico in Spark di Azure Synapse

  10. È possibile ottenere la stessa esperienza di esecuzione di SQL, ma senza dover cambiare linguaggio. A tale scopo, sostituire la cella SQL precedente con questa cella PySpark, l'esperienza di output è la stessa perché viene usato il comando display :

    display(spark.sql('SELECT * FROM demo_df'))
    
  11. Ognuna delle celle eseguite in precedenza conteneva l’opzione per passare al server di cronologia e a Monitoraggio. Facendo clic sui collegamenti si passa a diverse parti dell'esperienza utente.

Annotazioni

Una parte della documentazione ufficiale di Apache Spark si basa sull'uso della console Spark, che non è disponibile in Synapse Spark. Usare al suo posto un notebook o IntelliJ.

Pulire le risorse

Azure Synapse salva i dati in Azure Data Lake Storage. Puoi tranquillamente permettere che un'istanza di Spark si spenga quando non è in uso. Vengono addebitati costi per un pool di Apache Spark serverless, purché sia in esecuzione, anche quando non è in uso.

Poiché gli addebiti per il pool sono molto superiori agli addebiti per l'archiviazione, è opportuno lasciare che le istanze di Spark vengano spente quando non sono in uso.

Per assicurarsi che l'istanza di Spark venga arrestata, terminare tutte le sessioni connesse (notebook). Il pool si arresta quando viene raggiunto il tempo di inattività specificato nel pool di Apache Spark. È anche possibile selezionare la sessione di fine dalla barra di stato nella parte inferiore del notebook.

Passaggi successivi

In questa guida introduttiva si è appreso come creare un pool di Apache Spark serverless ed eseguire una query Spark SQL di base.