Differenze tra RDD, frame di dati e set di dati in Spark

Contenuti

Panoramica

  • Comprendi la differenza tra le API 3 scintille: RDD, frame di dati e set di dati
  • Vedremo come creare RDD, frame di dati e set di dati.

introduzione

Aver superato 11 anni da quando Apache Spark cominciò ad esistere e, impressionante e continuo, è diventata la prima scelta degli sviluppatori di big data. Gli sviluppatori hanno sempre amato fornire API semplici e potenti in grado di eseguire qualsiasi tipo di analisi dei big data..

Set di dati di frame di dati RDD

Inizialmente, Su 2011 ha inventato il concetto di RDD, dopo in 2013 con Dataframes e successivamente in 2015 con il concetto di Dataset. Nessuno di loro si è deprezzato, possiamo ancora usarli tutti. In questo post, capiremo e vedremo la differenza tra i tre.

Sommario

  1. Cosa sono gli RDD?
  2. Quando usare RDD?
  3. Cosa sono i frame di dati??
  4. Cosa sono i set di dati??
  5. RDD vs frame di dati vs set di dati?

Cosa sono gli RDD?

RDD o set di dati distribuiti resilienti sono la struttura dati fondamentale di Spark. È la raccolta di oggetti che è in grado di memorizzare dati partizionati nei più nodi del cluster e consente loro di eseguire l'elaborazione in parallelo..

È tollerante agli errori se si eseguono più trasformazioni sull'RDD e poi, per qualsiasi circostanza, qualche nodo fallisce. El RDD, poi, è in grado di recuperare automaticamente.

RDDCi sono 3 alternative per creare un ASD:

  1. Parallelamente a una raccolta dati esistente
  2. Riferimento al file di dati esterno memorizzato
  3. Creazione di RDD da un RDD esistente

Quando usare RDD?

Possiamo usare RDD nelle seguenti situazioni:

  1. Quando vogliamo eseguire trasformazioni di basso livello sul set di dati. Maggiori informazioni sulle trasformazioni RDD: PySpark per eseguire trasformazioni
  2. Non deduce automaticamente lo schema dai dati importati, dobbiamo specificare lo schema di ogni singolo set di dati quando creiamo un RDD. Scopri come dedurre lo schema RDD qui: Costruire pipeline di machine learning con PySpark

Cosa sono i frame di dati??

È stato introdotto per la prima volta nella versione Spark 1.3 per superare i limiti di Spark RDD. Spark Dataframes sono la raccolta distribuita di punti dati, ma qui, i dati sono organizzati in colonne con nome. Consenti agli sviluppatori di eseguire il debug del codice durante il runtime, cosa non era consentito con gli RDD.

I frame di dati possono leggere e scrivere i dati in vari formati come CSV, JSON, EURO, Tabelle HDFS e HIVE. È già ottimizzato per elaborare grandi set di dati per la maggior parte delle attività di pre-elaborazione, quindi non abbiamo bisogno di scrivere funzioni complesse da soli.

Utilizza un ottimizzatore del catalizzatore per scopi di ottimizzazione. Se vuoi saperne di più sull'ottimizzatore del catalizzatore, Consiglio vivamente di leggere questo post: Tutorial pratico per l'analisi dei dati utilizzando Spark SQL

Vediamo come creare un frame di dati usando PySpark.

Cosa sono i set di dati??

Spark Datasets è un'estensione dell'API Data Frames con i vantaggi di RDD e Dataset. È veloce e fornisce un'interfaccia type-safe. La sicurezza dei tipi significa che il compilatore convaliderà i tipi di dati di tutte le colonne nel set di dati solo durante la compilazione e genererà un errore in caso di discrepanza nei tipi di dati.

set di dati

Gli utenti RDD lo troveranno qualcosa di simile al codice, ma è più veloce di RDD. Può elaborare in modo efficiente dati strutturati e non strutturati.

Non possiamo ancora creare set di dati Spark in Python. L'API Dataset è abilitata solo in Scala e Java.

RDD vs. frame di dati vs. set di dati

RDD Frame di dati Set di dati
Rappresentazione dei dati RDD è una raccolta distribuita di elementi di dati senza alcuno schema. È anche la raccolta distribuita organizzata nelle colonne nominate. È un'estensione di Dataframes con più funzionalità come la sicurezza dei tipi e l'interfaccia orientata agli oggetti.
Miglioramento Nessun motore di ottimizzazione integrato per RDD. Gli sviluppatori devono scrivere da soli il codice ottimizzato. Utilizza un ottimizzatore del catalizzatore per l'ottimizzazione. Utilizza anche un ottimizzatore del catalizzatore per scopi di ottimizzazione.
Proiezione contorno Qui, dobbiamo impostare lo schema manualmente. Scoprirà automaticamente lo schema del set di dati. Inoltre, troverà automaticamente lo schema del set di dati tramite il motore SQL.
Operazione di aggregazione RDD è più lento dei frame di dati e dei set di dati per eseguire operazioni semplici come il raggruppamento di dati. Fornisce una semplice API per eseguire operazioni di aggregazione. Esegue l'aggregazione più velocemente di RDD e set di dati. Il set di dati è più veloce degli RDD ma leggermente più lento dei Dataframes.

Note finali

In questo post, abbiamo visto la differenza tra le tre API principali di Apache Spark. Quindi, completare, se vuoi una semantica ricca, astrazioni di alto livello, sicurezza di tipo, elija Dataframes o Datasets. Se hai bisogno di un maggiore controllo sulla parte di pre-elaborazione, puoi sempre usare gli RDD.

Consiglio vivamente di dare un'occhiata a queste risorse aggiuntive su Apache Spark per aumentare le tue conoscenze.:

Se hai trovato questo post informativo, Condividi con i tuoi amici, e anche se vuoi dare qualche suggerimento su cosa dovrebbe essere coperto, sentiti libero di lasciarli nelle note qui sotto.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.