Filtraggio e Selezione dei Dati con SQL
Scorri per mostrare il menu
Una Vista Temporanea è un alias a livello di sessione per un DataFrame che consente di interagire con i dati utilizzando la sintassi SQL standard. Non sposta né duplica i dati; fornisce semplicemente una "finestra" compatibile con SQL sul DataFrame presente nella memoria del cluster.
Sebbene Python sia eccellente per costruire pipeline complesse, molti professionisti dei dati preferiscono la leggibilità e la rapidità di SQL per filtrare e selezionare i dati. In Databricks, non è necessario scegliere tra uno o l'altro. È possibile trasformare un DataFrame Python in una tabella SQL temporanea (una "vista") e iniziare subito a interrogarla.
Creazione di una Vista Temporanea
Prima di poter eseguire una query SQL su un DataFrame, è necessario assegnargli un nome che il motore SQL possa riconoscere. È possibile farlo utilizzando il metodo createOrReplaceTempView.
# Create a SQL view named 'diamond_view' from our existing DataFrame
df.createOrReplaceTempView("diamond_view")
La parte "Replace" di questo comando è importante: garantisce che, se esegui nuovamente la cella, la vista verrà semplicemente aggiornata invece di causare un errore. Questa vista esisterà solo per la durata della sessione corrente del notebook.
Interrogazione con la magia %sql
Ora che la vista è stata registrata, è possibile cambiare linguaggio. Utilizzando il comando magico %sql all'inizio di una nuova cella, è possibile eseguire le stesse selezioni e filtri effettuati in Python, ma utilizzando la sintassi SQL standard.
%sql
SELECT carat, cut, depth
FROM diamond_view
WHERE price > 500
La potenza del filtraggio SQL
SQL è particolarmente intuitivo per il filtraggio complesso. È possibile utilizzare l'operatore IN per filtrare su più valori oppure l'operatore LIKE per il pattern matching, attività che spesso risultano più verbose in Python.
%sql
SELECT * FROM diamond_view
WHERE cut IN ('Good', 'Premium')
AND clarity LIKE '%V%'
Selezione e aliasing delle colonne
In SQL, selezionare e rinominare le colonne è semplice utilizzando la parola chiave AS. Questa è una pratica comune per rendere le intestazioni dei report finali più professionali.
%sql
SELECT
carat,
cut AS Diamond_Quality,
price AS Selling_Price
FROM diamond_view
Perché utilizzare una Vista Temporanea?
Potresti chiederti: "Perché non interrogare direttamente la tabella dal Catalog?" Il vantaggio di una Vista Temporanea è che consente di interrogare un DataFrame che è già stato parzialmente pulito o modificato in Python. Fornisce un collegamento, permettendo di utilizzare Python per le operazioni di data engineering più complesse e SQL per l'analisi finale e la visualizzazione.
1. Quale metodo Python è necessario eseguire prima di poter utilizzare %sql per interrogare un DataFrame?
2. Cosa succede a una "Vista Temporanea" una volta che si scollega il notebook dal cluster o si termina la sessione?
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