Scrittura dei Dati Elaborati in una Tabella
Scorri per mostrare il menu
La scrittura dei dati è il processo di trasferimento di un DataFrame dalla memoria temporanea del cluster allo storage permanente nel Catalog. Utilizzando il metodo saveAsTable(), si garantisce che i risultati puliti e aggregati vengano conservati e resi accessibili ad altri utenti e strumenti.
Tutto ciò che è stato fatto finora è stato "in memoria". Se si spegnesse ora il cluster, i DataFrame trasformati scomparirebbero. Per rendere permanente il lavoro svolto, è necessario scrivere i dati nel Lakehouse. In Databricks, il metodo standard per farlo consiste nel salvare il DataFrame come Delta Table.
Sintassi di saveAsTable()
Per salvare il lavoro, si concatena il metodo write al DataFrame. L'approccio più diretto è:
# Save the 'summary_df' we created earlier as a permanent table
summary_df.write.mode("overwrite").saveAsTable("workspace.default.diamonds_summary”)
- write: accede all'interfaccia writer del DataFrame;
- mode("overwrite"): indica a Databricks cosa fare se esiste già una tabella con lo stesso nome. "Overwrite" sostituisce i vecchi dati con quelli nuovi. Altre opzioni includono "append" (per aggiungere nuove righe alla fine della tabella esistente);
- saveAsTable: specifica il nome a tre parti (
catalog.schema.table) dove i dati verranno memorizzati.
Delta Lake: Il formato predefinito
Quando si utilizza saveAsTable, Databricks salva automaticamente i dati nel formato Delta. Come discusso nella Sezione 1, Delta Lake garantisce affidabilità. Assicura che, anche se il cluster si arresta durante un'operazione di "scrittura", la tabella non venga danneggiata. Permette inoltre il "Time Travel", ovvero la possibilità di consultare versioni precedenti della tabella in caso di errore.
Verifica della scrittura nel Catalogo
Al termine dell'esecuzione del comando, è necessario verificare che i dati siano stati inseriti correttamente:
- Navigare alla scheda Catalogo nella barra laterale sinistra;
- Espandere il catalogo
maine lo schemadefault; - Cercare il nome della nuova tabella (ad esempio,
regional_summary); - È possibile cliccare sulla tabella per visualizzarne lo schema, i dati di esempio e i metadati, come la data di creazione e l'autore della creazione.
Lettura della tabella salvata
Una volta che una tabella è presente nel Catalogo, qualsiasi utente autorizzato può accedervi senza bisogno del tuo notebook. Può semplicemente eseguire una query SQL oppure utilizzare spark.table() per caricarla nel proprio ambiente:
# In a new notebook, anyone can now access your processed data
new_df = spark.table("main.default.regional_summary")
Best practice: pulizia
Dopo aver salvato i risultati finali in una tabella permanente, è buona abitudine professionale terminare il cluster o almeno "Cancellare lo stato". Poiché i dati sono ora archiviati in modo sicuro nel Catalog, non è più necessario mantenere i DataFrame temporanei che occupano spazio nella RAM del cluster.
1. Quale "mode" dovresti utilizzare se vuoi sostituire una tabella esistente con nuovi dati dal tuo DataFrame?
2. Qual è il principale vantaggio di salvare un DataFrame utilizzando saveAsTable()?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione