Spark Coalesce

Spark Coalesce
L'elaborazione dei big data è un argomento caldo nel mondo tecnico. Ci sono un gran numero di librerie e framework che vengono utilizzati per l'elaborazione regolare dei big data. Discuteremo di un framework, Apache Spark, che è un motore di elaborazione dei dati per dati massicciamente distribuiti. Discuteremo anche di uno dei suoi metodi popolari, Spark Coalesce, che viene utilizzato per ridurre le partizioni del set di dati, insieme al suo esempio.

Cos'è Apache Spark?

Apache Spark è uno strumento di elaborazione dei dati gratuiti e open source che utilizza strutture di programmazione di base per persistere e analizzare i dati in tempo reale attraverso diversi cluster di computer.

Spark ha iniziato come esperimento di amplab alla UC Berkeley nel 2009. Fa parte della licenza BSD che viene rilasciata nel 2010. Spark è diventato un progetto Apache nel 2013. Nel 2014, Databricks ha ottenuto un nuovo record mondiale ordinando set di dati su larga scala con Spark. Spark supporta vari linguaggi di programmazione come R, Python, Java e Scala ed è 100 volte più veloce di MapReduce nell'elaborazione dei dati poiché è fatto nella memoria. Contiene meno righe di codice e per l'autenticazione utilizza un codice condiviso. Può anche operare sul filo, sfruttando le capacità di Kerberos. Si basa su Hadoop MapReduce e estende il concetto MapReduce per impiegare efficacemente i nuovi tipi di calcoli.

Il vantaggio principale di Spark su Hadoop sta utilizzando un'architettura di elaborazione in memoria. Per utilizzare l'archiviazione di replica distribuita, Spark può funzionare sopra gli HDF. La scintilla può essere utilizzata nello stesso cluster Hadoop di MapReduce o come quadro di elaborazione autonomo. Il filo può anche eseguire applicazioni di scintilla. Invece di utilizzare uno spazio di memoria locale per il calcolo, Spark impiega un calcolo in memoria, consentendo agli utenti di elaborare i dati in RAM e recuperarli rapidamente. Spark non intende sostituire Hadoop; Potrebbe essere considerato un complimento.

MapReduce e Spark sono utilizzati in tandem: MapReduce gestisce l'elaborazione batch mentre Spark gestisce l'elaborazione in tempo reale. Il codice Spark può essere riutilizzato per l'elaborazione batch, unire i flussi contro i dati storici e fare query ad hoc sullo stato di flusso. Spark include strumenti di dati di streaming, ricerche interattive/dichiarative, apprendimento automatico, nonché mappa e ridurre.

Qual è il metodo Spark Coalesce?

Il metodo Coalesce viene utilizzato per ridurre il numero di partizioni del set di dati. Coalesce evita il pieno ronzio mescolando i dati usando il partizionatore hash (impostazione predefinita) e si regola alle partizioni esistenti anziché generarne di nuove. Ciò significa che può solo ridurre il numero di partizioni. In Spark SQL, il Coalesce Il metodo regolare è un metodo non aggregato. Per ridurre la quantità dei dati spostati, Coalesce utilizza le divisioni esistenti. Se tutte le colonne sono nulle, il coalesce restituisce il primo valore non null. Coalesce è più veloce della ripartizione perché evita l'intero mescolamento, mentre la ripartizione fa un mescolamento completo, che richiede tempo e costoso. È necessaria almeno una colonna per la coalescenza e tutte le colonne devono essere degli stessi o compatibili.

Esempio di utilizzo del metodo Coalesce

Per testare la funzione Spark Coalesce, utilizzare il seguente comando:

testdf = sqlcontext.creatotaFrame ([(1,1), (2,2), (Nessuno, 3), (4, nessuno)], ["id", "valore"])
+----+------+
| ID | Valore |
+----+------+
| 1 | 1 |
| 2 | 2 |
| null | 3 |
| 4 | null |
+----+------+

Importa le funzioni Pyspark richieste utilizzando il seguente comando:

da pyspark.SQL.tipi Import Floattype

da pyspark.SQL.funzioni importanti *

Per creare una nuova colonna con valori non nulli, applica il comando seguente:

tmp = testdf.WithColumn ('col', coalesce (testdf ['id'], testdf ['value']))
tmp.spettacolo()
+----+------+---------+
| ID | Valore | Col |
+----+------+---------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| null | 3 | 3 |
| 4 | null | 4 |
+----+------+---------+

Conclusione

Abbiamo discusso del metodo Apache Spark, Spark SQL e Spark SQL Coalesce. Abbiamo appreso che può essere utilizzato per ridurre le partizioni del frame di dati, insieme a un esempio. Ci siamo anche resi conto che il metodo Coalesce può essere utilizzato solo per ridurre il numero di partizioni mentre il partizionamento può essere utilizzato per ridurre o aumentare le partizioni.