Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Introduzione agli Spark DataFrame | Lavorare con i Dati
Fondamenti di Databricks: Guida per Principianti

Introduzione agli Spark DataFrame

Scorri per mostrare il menu

Note
Definizione

Un Spark DataFrame è una raccolta distribuita di dati organizzata in colonne denominate. Concettualmente, è equivalente a una tabella in un database relazionale o a un foglio di calcolo con intestazioni di colonna, ma è progettato per essere elaborato su un cluster di computer.

Con l'ingresso nella Sezione 4, l'attenzione si sposta dall'interfaccia ai dati stessi. Per lavorare efficacemente in Databricks, è fondamentale comprendere il concetto di DataFrame. Questa è la struttura di base utilizzata da Apache Spark per contenere e manipolare i dati. Che si utilizzi Python, SQL o Scala, quasi tutte le operazioni coinvolgono l'interazione con un DataFrame.

Esiste anche un'interfaccia PySpark che verrà utilizzata successivamente.

Apache Spark è un potente motore per l'elaborazione di grandi quantità di dati in parallelo su molti computer contemporaneamente. È scritto in Scala ed è ciò che effettivamente esegue le operazioni principali all'interno di Databricks.

PySpark è semplicemente l'interfaccia Python per Spark. Permette di scrivere codice Python dall'aspetto normale che, in realtà, istruisce Spark su cosa fare in background.

Quindi, quando si scrive un comando come df.filter() o df.groupBy() in un notebook Databricks, si sta utilizzando PySpark — ma è Spark che esegue effettivamente l'elaborazione di milioni di righe attraverso il cluster.

L'analogia del foglio di calcolo

Il modo più semplice per visualizzare un DataFrame è pensare a un singolo foglio in un file Excel. Contiene righe di dati e colonne con nomi specifici come "Date", "Product_ID" o "Price". Tuttavia, a differenza di un foglio Excel che risiede sul tuo computer, un DataFrame Spark è distribuito. Questo significa che se il tuo dataset è troppo grande per un solo computer, Spark suddivide il "foglio di calcolo" in parti più piccole e le distribuisce tra i diversi nodi del cluster.

Perché usare i DataFrame invece dei file grezzi?

Quando carichi un file CSV o JSON grezzo in un DataFrame, Databricks esegue due operazioni importanti:

  • Inferenza dello schema: analizza i dati per capire che "Price" è un numero e "Name" è un testo;
  • Ottimizzazione: una volta che i dati sono in un DataFrame, Spark può utilizzare il suo "ottimizzatore" per trovare il modo più veloce di filtrare o aggregare quei dati. Funziona come un GPS, trovando il percorso più efficiente verso il risultato per non sprecare potenza di calcolo.

Caratteristiche principali

Ci sono tre caratteristiche fondamentali dei DataFrame da ricordare:

  • Immutabile: una volta creato un DataFrame, non può essere modificato. Se si "puliscono" i dati o si "elimina una colonna", Spark in realtà crea un nuovo DataFrame con le modifiche applicate. Questo garantisce l'integrità dei dati;
  • Valutazione pigra: Spark non esegue alcuna operazione finché non viene richiesto un risultato (come un conteggio o una visualizzazione). Prima costruisce un "piano" ed esegue solo quando è strettamente necessario;
  • API unificata: è possibile creare un DataFrame con Python e poi interrogarlo utilizzando SQL. La struttura sottostante rimane invariata, consentendo il "mix di linguaggi" praticato nella Sezione 3.

DataFrame vs. Tabelle

In Databricks, i termini "Tabella" e "DataFrame" sono spesso usati in modo intercambiabile, ma esiste una piccola differenza. Una Tabella è un oggetto permanente salvato nel Catalogo. Un DataFrame è un oggetto temporaneo che risiede nella memoria del cluster mentre il notebook è in esecuzione.

Di solito, il flusso di lavoro sarà:

  • Caricare i dati dal Catalogo in un DataFrame;
  • Manipolare il DataFrame tramite codice;
  • Salvare il risultato finale nel Catalogo come Tabella.

1. Come gestisce un DataFrame Spark un set di dati troppo grande per un singolo computer?

2. Cosa succede quando si "modifica" un DataFrame in Spark, ad esempio rimuovendo una colonna?

question mark

Come gestisce un DataFrame Spark un set di dati troppo grande per un singolo computer?

Seleziona la risposta corretta

question mark

Cosa succede quando si "modifica" un DataFrame in Spark, ad esempio rimuovendo una colonna?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 1

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 4. Capitolo 1
some-alt