Metti un po’ di Spark nei tuoi dati
Nell’esercizio precedente hai visto come spostare i dati da Spark a pandas. Ma potresti voler fare il contrario e caricare un DataFrame pandas in un cluster Spark! Anche la classe SparkSession ha un metodo per farlo.
Il metodo .createDataFrame() prende un DataFrame pandas e restituisce un DataFrame Spark.
L’output di questo metodo è memorizzato in locale, non nel catalogo della SparkSession. Questo significa che puoi usare tutti i metodi dei DataFrame Spark su di esso, ma non puoi accedere ai dati in altri contesti.
Per esempio, una query SQL (usando il metodo .sql()) che fa riferimento al tuo DataFrame genererà un errore. Per accedere ai dati in questo modo, devi salvarli come tabella temporanea.
Puoi farlo usando il metodo .createTempView() del DataFrame Spark, che accetta come unico argomento il nome della tabella temporanea che vuoi registrare. Questo metodo registra il DataFrame come tabella nel catalogo ma, essendo temporanea, può essere accessibile solo dalla specifica SparkSession usata per creare il DataFrame Spark.
Esiste anche il metodo .createOrReplaceTempView(). Questo crea in sicurezza una nuova tabella temporanea se non esiste ancora, oppure aggiorna una tabella esistente se è già definita. Userai questo metodo per evitare problemi di tabelle duplicate.
Dai un’occhiata al diagramma per vedere tutti i modi in cui le strutture dati di Spark interagiscono tra loro.

Nel tuo workspace c’è già una SparkSession chiamata spark, numpy è stato importato come np e pandas come pd.
Questo esercizio fa parte del corso
Fondamenti di PySpark
Istruzioni dell'esercizio
- Il codice per creare un DataFrame
pandasdi numeri casuali è già fornito e salvato inpd_temp. - Crea un DataFrame Spark chiamato
spark_temprichiamando il metodo Spark.createDataFrame()conpd_tempcome argomento. - Esamina l’elenco delle tabelle nel tuo cluster Spark e verifica che il nuovo DataFrame non sia presente. Ricorda che puoi usare
spark.catalog.listTables()per farlo. - Registra il DataFrame
spark_tempche hai appena creato come tabella temporanea usando il metodo.createOrReplaceTempView(). La tabella temporanea deve chiamarsi"temp". Ricorda che il nome della tabella si imposta includendolo come unico argomento del metodo! - Esamina di nuovo l’elenco delle tabelle.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create pd_temp
pd_temp = pd.DataFrame(np.random.random(10))
# Create spark_temp from pd_temp
spark_temp = ____
# Examine the tables in the catalog
print(____)
# Add spark_temp to the catalog
spark_temp.____
# Examine the tables in the catalog again
print(____)