Inviare processi Spark nel cluster Big Data di SQL Server in Visual Studio Code

Importante

Il componente aggiuntivo cluster Big Data Microsoft SQL Server 2019 verrà ritirato. Il supporto per SQL Server 2019 cluster Big Data terminerà il 28 febbraio 2025. Per altre informazioni, vedere Opzioni Big Data nella piattaforma Microsoft SQL Server.

Informazioni su come usare Spark & Hive Tools per Visual Studio Codice per creare e inviare script PySpark per Apache Spark, descrivendo prima di tutto come installare gli strumenti Spark & Hive in Visual Studio Code e quindi verrà illustrato come inviare processi a Spark.

Spark & Hive Tools può essere installato nelle piattaforme supportate da Visual Studio Code, che includono Windows, Linux e macOS. Di seguito sono illustrati i prerequisiti per le diverse piattaforme.

Prerequisiti

Per completare i passaggi in questo articolo, è necessario quanto segue:

Installare Spark & Hive Tools

Dopo aver completato i prerequisiti, è possibile installare Spark & Hive Tools per Visual Studio Codice. Completare i passaggi seguenti per installare Spark & Hive Tools:

  1. Aprire Visual Studio Code.

  2. Dalla barra dei menu passare a Visualizza>Estensioni.

  3. Nella casella di ricerca immettere Spark & Hive.

  4. Selezionare Spark & Hive Tools, pubblicato da Microsoft, dai risultati della ricerca e quindi selezionare Installa.

    Install Extension

  5. Ricaricare quando necessario.

Aprire la cartella di lavoro

Completare la procedura seguente per aprire una cartella di lavoro e creare un file in Visual Studio Code:

  1. Dalla barra dei menu passare a File>Apri cartella...>C:\SQLBDC\SQLBDCexample, quindi selezionare il pulsante Seleziona cartella. La cartella verrà visualizzata nella visualizzazione Explorer a sinistra.

  2. Dalla visualizzazione Explorer selezionare la cartella, SQLBDCexample e quindi l'icona Nuovo file accanto alla cartella di lavoro.

    New file

  3. Assegnare al nuovo file l'estensione .py (script Spark). Questo esempio usa HelloWorld.py.

  4. Copiare e incollare il codice seguente nel file di script:

    import sys
    from operator import add
    from pyspark.sql import SparkSession, Row
    
    spark = SparkSession\
       .builder\
       .appName("PythonWordCount")\
       .getOrCreate()
    
    data = [Row(col1='pyspark and spark', col2=1), Row(col1='pyspark', col2=2), Row(col1='spark vs hadoop', col2=2), Row(col1='spark', col2=2), Row(col1='hadoop', col2=2)]
    df = spark.createDataFrame(data)
    lines = df.rdd.map(lambda r: r[0])
    
    counters = lines.flatMap(lambda x: x.split(' ')) \
       .map(lambda x: (x, 1)) \
       .reduceByKey(add)
    
    output = counters.collect()
    sortedCollection = sorted(output, key = lambda r: r[1], reverse = True)
    
    for (word, count) in sortedCollection:
       print("%s: %i" % (word, count))
    

Prima di poter inviare script ai cluster da Visual Studio Code, è necessario collegare un cluster Big Data di SQL Server.

  1. Dalla barra dei menu passare a Visualizza>tavolozza comandi... e immettere Spark/Hive: Collegare un cluster.

    link cluster command

  2. Selezionare il tipo di cluster collegato SQL Server Big Data (Big Data di SQL Server).

  3. Immettere l'endpoint dei Big Data di SQL Server.

  4. Immettere SQL Server nome utente del cluster Big Data.

  5. Immettere la password per l'amministratore utenti.

  6. Impostare il nome visualizzato del cluster Big Data (facoltativo).

  7. Elencare i cluster ed esaminare la visualizzazione OUTPUT per verificare.

Elencare i cluster

  1. Dalla barra dei menu passare a Visualizza>tavolozza comandi... e immettere Spark/Hive: Elenco cluster.

  2. Esaminare la visualizzazione OUTPUT. La visualizzazione mostrerà i cluster collegati.

    Set a default cluster configuration

Impostare il cluster predefinito

  1. Re-Open la cartella SQLBDCexample creata in precedenza se chiusa.

  2. Selezionare il file HelloWorld.py creato in precedenza. Il file verrà aperto nell'editor di script.

  3. Collegare un cluster, se non è ancora stato fatto.

  4. Fare clic con il pulsante destro del mouse sull'editor di script e scegliere Spark/Hive: Imposta cluster predefinito.

  5. Selezionare un cluster come predefinito per il file di script corrente. Gli strumenti aggiornano automaticamente il file di configurazione .VSCode\settings.json.

    Set default cluster configuration

Inviare query PySpark interattive

È possibile inviare query PySpark interattive seguendo questa procedura:

  1. Aprire di nuovo la cartella SQLBDCexample creata in precedenza, se è stata chiusa.

  2. Selezionare il file HelloWorld.py creato in precedenza. Il file verrà aperto nell'editor di script.

  3. Collegare un cluster, se non è ancora stato fatto.

  4. Scegliere tutto il codice e fare clic con il pulsante destro del mouse sull'editor di script, selezionare Spark: PySpark Interactive per inviare la query oppure usare ctrl + ALT + I.

    pyspark interactive context menu

  5. Selezionare il cluster se non è stato specificato un cluster predefinito. Dopo alcuni momenti, i risultati di Python Interactive vengono visualizzati in una nuova scheda. Gli strumenti consentono anche di inviare un blocco di codice anziché l'intero file di script usando il menu di scelta rapida.

    pyspark interactive python interactive window

  6. Immettere "%%info" e quindi premere MAIUSC+INVIO per visualizzare le informazioni sul processo. Facoltativa

    view job information

    Nota

    Quando l'opzione Python Extension Enabled (Estensione Python abilitata) è deselezionata nelle impostazioni (per impostazione predefinita è selezionata), i risultati dell'interazione PySpark inviata useranno la finestra precedente.

    pyspark interactive python extension disabled

Inviare il processo batch PySpark

  1. Aprire di nuovo la cartella SQLBDCexample creata in precedenza, se è stata chiusa.

  2. Selezionare il file HelloWorld.py creato in precedenza. Il file verrà aperto nell'editor di script.

  3. Collegare un cluster, se non è ancora stato fatto.

  4. Fare clic con il pulsante destro del mouse sull'editor di script e quindi scegliere Spark: PySpark Batch oppure usare ctrl + ALT + H.

  5. Selezionare il cluster se non è stato specificato un cluster predefinito. Dopo aver inviato un processo Python, i log di invio vengono visualizzati nella finestra OUTPUT in Visual Studio Code. Vengono visualizzati anche i valori di Spark UI URL (URL UI Spark) e Yarn UI URL (URL UI Yarn). È possibile aprire l'URL in un Web browser per tenere traccia dello stato del processo.

    Submit Python job result

Configurazione di Apache Livy

La configurazione di Apache Livy è supportata e può essere impostata in .VSCode\settings.json nella cartella dell'area di lavoro. Attualmente, la configurazione di Livy supporta solo script Python. Per altre informazioni, vedere il file README di Livy.

Come attivare la configurazione livy

Metodo 1

  1. Dalla barra dei menu passare aPreferenze>file>Impostazioni.
  2. Nella casella di testo Impostazioni di ricerca immettere l'invio di processi HDInsight: Livy Conf.
  3. Selezionare Edit in settings.json (Modifica in settings.json) per il risultato della ricerca pertinente.

Metodo 2

Inviare un file e osservare che la cartella .vscode viene aggiunta automaticamente alla cartella di lavoro. È possibile trovare la configurazione livy selezionando settings.json in .vscode.

Impostazioni del progetto:

Livy configuration

Nota

Per le impostazioni driverMemory ed executorMemory, impostare il valore con unità, ad esempio 1 gb o 1024 mb.

Configurazioni di Livy supportate

POST/batch

Testo della richiesta

name description tipo
file File contenente l'applicazione da eseguire Percorso (obbligatorio)
proxyUser Utente da rappresentare quando si esegue il processo string
className Classe principale Java/Spark dell'applicazione string
args Argomenti della riga di comando per l'applicazione Elenco di stringhe
jars File jar da usare in questa sessione Elenco di stringhe
pyFiles File Python da usare in questa sessione Elenco di stringhe
files File da usare in questa sessione Elenco di stringhe
driverMemory Quantità di memoria da usare per il processo del driver string
driverCores Numero di core da usare per il processo del driver INT
executorMemory Quantità di memoria da usare per un processo executor string
executorCores Numero di core da usare per ogni executor INT
numExecutors Numero di executor da avviare per questa sessione INT
archives Archivi da usare in questa sessione Elenco di stringhe
coda Nome della coda YARN dove è stato eseguito l'invio string
name Nome della sessione string
conf Proprietà di configurazione Spark Mappa di chiave=valore
:- :- :-

Corpo della risposta

Oggetto batch creato.

name description tipo
id ID della sessione INT
appId ID applicazione della sessione string
appInfo Informazioni dettagliate sull'applicazione Mappa di chiave=valore
log Righe di log Elenco di stringhe
state Stato del batch string
:- :- :-

Nota

La configurazione di Livy assegnata verrà visualizzata nel riquadro di output quando si invia lo script.

Funzionalità aggiuntive

Spark & Hive per Visual Studio Code supporta le funzionalità seguenti:

  • IntelliSense completamento automatico. Vengono visualizzati suggerimenti per parole chiave, metodi, variabili e altro ancora. Le diverse icone rappresentano tipi diversi di oggetti.

    Spark & Hive Tools for Visual Studio Code IntelliSense object types

  • IntelliSense marcatore di errore. Il servizio di linguaggio sottolinea gli errori nello script Hive.

  • Evidenziazioni della sintassi. Il servizio linguaggio usa colori diversi per distinguere variabili, parole chiave, tipo di dati, funzioni e altro ancora.

    Spark & Hive Tools for Visual Studio Code syntax highlights

  1. Dalla barra dei menu passare a Visualizza>riquadro comandi... e quindi immettere Spark/Hive: Scollega un cluster.

  2. Selezionare il cluster da scollegare.

  3. Esaminare la visualizzazione OUTPUT per verificare.

Passaggi successivi

Per altre informazioni su SQL Server cluster Big Data e sugli scenari correlati, vedere SQL Server cluster Big Data.