Esegui il codice Spark
Per modificare ed eseguire codice Spark in Microsoft Fabric, puoi usare notebook oppure definire un processo Spark.
Notebook
Quando vuoi usare Spark per esplorare e analizzare i dati in modo interattivo, usa un notebook. I notebook ti consentono di combinare testo, immagini e codice scritto in più lingue per collaborare e creare un elemento interattivo che puoi condividere con altri utenti.
I notebook sono costituiti da una o più celle, ognuna delle quali può contenere contenuto in formato markdown o codice eseguibile. Puoi eseguire il codice in modo interattivo nel notebook e visualizzare immediatamente i risultati.
Codice e celle Markdown
Le celle dei notebook contengono il codice o il testo Markdown, ma non entrambi. Per convertire una cella di codice esistente in Markdown, selezionare M. Per convertire una cella Markdown nel codice, selezionare </>.
Le celle Markdown includono una barra degli strumenti di testo per consentire di formattare il testo e di aggiungere immagini. La possibilità di aggiungere celle Markdown a un notebook è potente. Consente di aggiungere spiegazioni sul codice, documentare il motivo per cui vengono eseguite determinate operazioni, cosa si sta tentando di ottenere e perché. Questa funzionalità non solo rende più utile un notebook in un secondo momento, ma migliora anche la collaborazione.
Linguaggi di codice
PySpark (un'implementazione specifica di Spark di Python) è il linguaggio predefinito per i notebook di Microsoft Fabric, ma è anche possibile selezionare Scala (un linguaggio interpretato in base a Java), Spark SQL o SparkR. La maggior parte dei carichi di lavoro di ingegneria e analisi dei dati viene eseguita usando una combinazione di PySpark e Spark SQL.
È possibile modificare la lingua predefinita per un notebook (che interessa tutte le celle di codice) oppure è possibile usare un comando magic in una cella per eseguire l'override della lingua predefinita solo per tale cella. Ad esempio, il comando magic %%sql
nel codice seguente modifica il linguaggio di programmazione per la cella in Spark SQL:
%%sql
SELECT YEAR(OrderDate) AS OrderYear,
SUM((UnitPrice * Quantity) + Tax) AS GrossRevenue
FROM salesorders
GROUP BY YEAR(OrderDate)
ORDER BY OrderYear;
Usare %%pyspark per tornare al linguaggio di programmazione in PySpark. Oppure %%spark per modificare il linguaggio di programmazione in Scala. Il menu a discesa nella parte inferiore destra della cella può essere usato anche per aggiungere un comando magic.
Nota
I comandi magic fanno distinzione tra maiuscole e minuscole.
Il codice nel notebook viene in genere eseguito in modo interattivo, eseguendo singole celle o tutte le celle del notebook. È anche possibile pianificare l'esecuzione di un notebook in modo non interattivo.
Definizioni dei processi Spark
Se vuoi usare Spark per inserire e trasformare i dati come parte di un processo automatizzato, puoi definire un processo Spark per eseguire uno script su richiesta o basato su una pianificazione.
Per configurare un processo Spark, crea una definizione di processo Spark nell'area di lavoro e specifica lo script da eseguire. Puoi anche specificare un file di riferimento (ad esempio un file di codice Python contenente le definizioni di funzioni usate nello script) e un riferimento a un lakehouse specifico contenente i dati elaborati dallo script.
È anche possibile specificare gli argomenti della riga di comando, che consentono di variare il comportamento dello script a seconda degli argomenti passati. Questo approccio può essere utile quando lo stesso processo Spark verrà usato in più contesti (ad esempio, è possibile usare un singolo script per caricare dati da file in tabelle, variando il percorso del file e il nome della tabella durante l'esecuzione).
Pianificazione del notebook e dell'esecuzione di processi
È possibile definire una pianificazione per la definizione di un notebook o di un processo Spark in modo che venga eseguita automaticamente a un intervallo specifico. Questo approccio può essere utile per semplici attività automatizzate con script e che non fanno parte di un carico di lavoro di inserimento o elaborazione dati più complesso. Nella maggior parte degli ambienti di produzione, una soluzione più gestibile consiste nell'includere la definizione del notebook o del processo Spark in una pipeline, in cui può essere integrata in una soluzione di orchestrazione più complessa.
Nota
Quando si esegue codice in un notebook o in una definizione di processo Spark in modo interattivo, il codice viene eseguito nel contesto di sicurezza dell'utente al momento connesso. Quando si esegue usando una pianificazione, il codice presuppone l'identità dell'utente che ha creato la pianificazione. Quando viene eseguito in una pipeline, il codice usa l'identità dell'utente proprietario della pipeline.
Indipendentemente dalla modalità di esecuzione del codice, è necessario assicurarsi che l'identità usata nel contesto di sicurezza disponga di autorizzazioni sufficienti per accedere alle risorse a cui fa riferimento il codice, incluse tabelle o file in una lakehouse.