Lavorando con Spark, avrai a disposizione tre API: DataFrame, set di dati e 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:
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.
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:
In Spark i DataFrame possono essere creati in diversi modi:
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.
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:
Lo svantaggio principale dei set di dati è che richiedono la tipizzazione in stringhe.
