Passa al contenuto principale

API Spark

Prova Databricks gratis

Lavorando con Spark, avrai a disposizione tre API: DataFrame, set di dati e RDD

Cosa sono i set di dati distribuiti resilienti (RDD)?

Un RDD, o set di dati distribuiti resiliente, è una raccolta di record con elaborazione distribuita, tollerante agli errori e di natura immutabile. Gli RDD possono essere utilizzati in parallelo ad API di basso livello, mentre la loro funzione "lazy" velocizza l'esecuzione dell'operazione Spark. Gli RDD supportano due tipi di operazioni:

  • Trasformazioni - operazioni ritardate ("lazy") che restituiscono un altro RDD, il quale non avvia la computazione a meno che su di esso non venga eseguita un'azione. Alcuni esempi di trasformazioni sono map(), flatmap(), filter()
    API Spark: trasformazioni RDD
  • Azioni - operazioni che attivano calcoli e restituiscono valori. Alcuni esempi di azioni sono: count, top(), savetofile()
    API SPARK: azioni RDD

Svantaggi degli RDD

Se scegli di lavorare con gli RDD, dovrai ottimizzarli uno per uno. Inoltre, a differenza dei set di dati e dei DataFrame, gli RDD non desumono lo schema dei dati acquisiti, che andrà quindi specificato.

Cosa sono i DataFrames?

Un DataFrame è una raccolta distribuita di righe in colonne denominate. Per semplificare, può essere paragonato a un foglio di lavoro Excel con intestazioni di colonna, o considerato l'equivalente di una tabella in un database relazionale o di un DataFrame in R o Python. Condivide tre caratteristiche principali con gli RDD:

  • Immutabilità - è possibile creare un DataFrame, ma non è possibile modificarlo. È possibile trasformarlo, come avviene con un RDD.
  • Lazy Evaluations - un task non viene eseguito finché non viene compiuta un'azione.
  • Distribuzione - come gli RDD, i DataFrame sono distribuiti.

Come creare un DataFrame

In Spark i DataFrame possono essere creati in diversi modi:

  • Utilizzando diversi formati di dati, ad esempio caricando i dati da file JSON, CSV, RDBMS, XML o Parquet.
  • Caricando i dati da un RDD già esistente.
  • Specificando programmaticamente lo schema.

Svantaggi dei DataFrame

Lo svantaggio principale dell'API DataFrame è che non supporta in modo sicuro la compilazione; di conseguenza, l'utente è limitato nel caso in cui la struttura dei dati non sia nota.

Cosa sono i set di dati?

Un set di dati è un insieme di oggetti immutabili e fortemente tipizzati mappati su uno schema relazionale. Un set di dati può essere creato utilizzando oggetti JVM e manipolato tramite trasformazioni funzionali complesse. I set di dati possono essere creati in due modi:

  • Dinamicamente.
  • Leggendo da un file JSON con SparkSession.

Svantaggi dei set di dati

Lo svantaggio principale dei set di dati è che richiedono la tipizzazione in stringhe.

Risorse aggiuntive

Torna al Glossario