Usare Spark nei notebook

Completato

È possibile eseguire molti tipi diversi di applicazioni in Spark, tra cui codice in script Python o Scala, codice Java compilato come Archivio Java (JAR) e altre ancora. Spark viene comunemente usato in due tipi di carichi di lavoro:

  • Processi di elaborazione in batch o in streaming per inserire, pulire e trasformare i dati, spesso in esecuzione come parte di una pipeline automatizzata.
  • Sessioni di analisi interattive per esplorare, analizzare e visualizzare i dati.

Nozioni di base sulla modifica e sul codice dei notebook

I notebook di Databricks sono l'area di lavoro principale per data science, progettazione e analisi. Sono compilati intorno alle celle, che possono contenere codice o testo formattato (Markdown). Questo approccio basato su celle semplifica l'esperimento, il test e la spiegazione del lavoro in un'unica posizione. È possibile eseguire una singola cella, un gruppo di celle o l'intero notebook, con output come tabelle, grafici o testo normale visualizzato direttamente sotto la cella eseguita. Le celle possono essere riorganizzate, ridotte o cancellate per mantenere il notebook organizzato e leggibile.

Screenshot di un notebook in Azure Databricks.

Un punto di forza principale dei notebook di Databricks è il supporto multi-linguaggio. Mentre il valore predefinito è spesso Python, è possibile passare a SQL, Scala o R all'interno dello stesso notebook usando i comandi magic del linguaggio %sql, %r, %scala o %python. Questa flessibilità significa che è possibile scrivere logica ETL in SQL, codice di Machine Learning in Python e quindi visualizzare i risultati con R, tutti in un unico flusso di lavoro. Databricks fornisce anche il completamento automatico e l'evidenziazione della sintassi, rendendo più semplice individuare gli errori e velocizzare la codifica.

Prima di eseguire qualsiasi codice, un notebook deve essere collegato a una risorsa di calcolo, ad esempio un cluster o un ambiente di calcolo serverless. Senza compute collegato, le celle di codice non possono essere eseguite. È possibile selezionare il compute esistente dalla barra degli strumenti del notebook o creare un nuovo cluster ed è possibile scollegare e ricollegare i notebook in base alle esigenze. Questa connessione consente al notebook di usare l'elaborazione distribuita in Azure Databricks.

Usare il codice Genie

Genie Code (precedentemente denominato Databricks Assistant) è un assistente alla programmazione basato sull'intelligenza artificiale integrato nei notebook. L'obiettivo è quello di aiutare a scrivere, comprendere e migliorare il codice in modo più efficiente usando il contesto del notebook e dell'area di lavoro. Può generare nuovo codice dai prompt del linguaggio naturale, spiegare logica complessa, suggerire correzioni per gli errori e ottimizzare le prestazioni. Ciò rende utile non solo per principianti l'apprendimento di Spark o SQL, ma anche per gli utenti esperti che vogliono velocizzare lo sviluppo e ridurre il lavoro ripetitivo.

L'assistente è consapevole del contesto, ovvero usa metadati del catalogo Unity, ad esempio nomi di tabella, nomi di colonna e descrizioni, per fornire suggerimenti personalizzati. Ad esempio, se l'area di lavoro dispone di Unity Catalog abilitato, può usare questi metadati durante la scrittura di query SQL. In questo modo è possibile chiedere qualcosa come "Selezionare l'importo medio delle vendite per area dalla tabella sales" e ottenere il codice SQL adatto al modello di dati effettivo. Analogamente, in Python è possibile chiedere di creare trasformazioni dei dati o processi Spark senza dover richiamare ogni firma di funzione dalla memoria.

Si interagisce con l'assistente in due modi principali:

  1. Prompt in linguaggio naturale—è possibile digitare istruzioni in inglese semplice nell'interfaccia simile a una chat e il sistema inserisce il codice nel tuo notebook.

  2. Comandi Slash: comandi rapidi, ad /explainesempio , /fixo /optimize che consentono di agire sul codice selezionato. Ad esempio, /explain spiega il codice in una cella, /fix propone una correzione per gli errori di codice e /optimize suggerisce miglioramenti delle prestazioni.

Screenshot dell'Assistente intelligenza artificiale in un notebook di Azure Databricks.

In modalità agente, l'assistente può proporre modifiche più grandi su più celle. Ad esempio, potrebbe eseguire il refactoring della logica ripetuta in una singola funzione riutilizzabile o ristrutturare un flusso di lavoro per una migliore leggibilità. Mantieni il controllo: esamini le modifiche proposte e le accetti o le rifiuti prima che vengano applicate al tuo blocco appunti.

Condivisione e modularizzazione del codice

Per evitare la duplicazione e migliorare la gestibilità, Databricks supporta l'inserimento di codice riutilizzabile in file (ad esempio, .py moduli) nell'area di lavoro, che i notebook possono importare. Esistono meccanismi per orchestrare i notebook, ovvero l'esecuzione di notebook da altri notebook o processi con più attività, in modo da poter creare flussi di lavoro che usano funzioni o moduli condivisi. L'uso %run di è un modo più semplice per includere un altro notebook, anche se con alcune limitazioni.

Debugging, cronologia delle versioni e annullamento degli errori

Databricks offre un debugger interattivo predefinito per i notebook Python. Dopo aver attivato Python Notebook Interactive Debugger nelle impostazioni dello sviluppatore, è possibile impostare punti di interruzione, scorrere l'esecuzione e controllare le variabili. Ciò consente di isolare i bug in modo più efficace rispetto all'uso di tecniche di debug basate su stampa/log.

Screenshot con annotazioni della barra degli strumenti del debugger nel notebook di Azure Databricks.

I notebook mantengono automaticamente la cronologia delle versioni: è possibile visualizzare snapshot precedenti, assegnare descrizioni delle versioni, ripristinare versioni precedenti o eliminare/cancellare la cronologia. Se si utilizza l'integrazione con Git, è possibile sincronizzare e gestire le versioni dei notebook e dei file nel repository.

Screenshot della cronologia delle versioni di ripristino nel notebook di Azure Databricks.

Suggerimento

Per altre informazioni sull'uso dei notebook in Azure Databricks, vedere l'articolo Notebooks nella documentazione di Azure Databricks.