Usare Spark nei notebook
È 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.
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:
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.
Comandi Slash: comandi rapidi, ad
/explainesempio ,/fixo/optimizeche consentono di agire sul codice selezionato. Ad esempio,/explainspiega il codice in una cella,/fixpropone una correzione per gli errori di codice e/optimizesuggerisce miglioramenti delle prestazioni.
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.
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.
Suggerimento
Per altre informazioni sull'uso dei notebook in Azure Databricks, vedere l'articolo Notebooks nella documentazione di Azure Databricks.