Pyspark Pair RDD - trasformazioni

Pyspark Pair RDD - trasformazioni
In Python, Pyspark è un modulo Spark utilizzato per fornire un tipo di elaborazione simile come Spark.

RDD sta per set di dati distribuiti resilienti. Possiamo chiamare RDD una struttura di dati fondamentali in Apache Spark. La coppia RDD memorizza gli elementi/valori sotto forma di coppie di valore chiave. Memorizzerà la coppia di valore chiave nel formato (chiave, valore).

Dobbiamo importare RDD dal pyspark.Modulo RDD.

Quindi, in Pyspark, possiamo usare il metodo parallelize () per creare un RDD,.

Sintassi:

Spark_app.SparkContext.parallelizza (dati)

Dove,

I dati possono essere un monodimensionale (dati lineari) o bidimensionali (dati di riga-colonna).

Trasformazioni RDD:

Una trasformazione RDD è un'operazione applicata a una coppia RDD per creare nuovi dati dalla coppia esistente RDD. Usando le trasformazioni, siamo in grado di filtrare la coppia RDD applicando alcune trasformazioni.

Vediamo le trasformazioni che vengono eseguite sulla coppia data RDD.

Ne discuteremo uno per uno.

GroupBykey

GroupBykey viene utilizzato per eseguire la trasformazione su una coppia RDD raggruppando i valori in base alla chiave. Posizionerà tutti i valori raggruppati in un elenco seguito dalla chiave.

Sintassi:

coppierdd_data.GroupBykey ()

Useremo un ciclo per iterare chiavi e valori e posizioneremo i valori all'interno di un elenco usando la funzione List ().

Esempio:

In questo esempio, abbiamo creato una coppia RDD - soggetti_rating ed eseguito la trasformazione di GroupBykey () in valori di gruppo rispetto alla chiave. Quindi abbiamo usato un ciclo per iterare chiavi e valori e, infine, abbiamo visualizzato ogni tasto e gruppo di valori.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
# Importa RDD da Pyspark.rdd
da pyspark.RDD Import RDD
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea 6 - coppie di soggetti e valutazioni
soggetti_rating = spark_app.SparkContext.parallelize ([('python', 4), ('javascript', 2), ('linux', 5), ('c#', 4), ('javascript', 4), ('python', 3) ])
#Apply GroupByKey () trasformazione sui soggetti precedenti_rating coppia rdd
dizionario_rdd = soggetti_rating.GroupBykey ().raccogliere()
#get i tasti e tutti i valori WRT a tasti dal dizionario sopra RDD
Per le chiavi, valori in dizionario_rdd:
Stampa (tasti "->", elenco (valori))

Produzione:

Python -> [4, 3]
JavaScript -> [2, 4]
Linux -> [5]
C# -> [4]

Nella coppia di soggetti di cui sopra, ci sono due valori associati a Key-Python e Key-Javascript e solo un valore associato a Linux e C#.

BEBIKE SPORT

SortBykey viene utilizzato per eseguire la trasformazione su una coppia RDD restituendo una nuova coppia RDD in ordine crescente in base alla chiave. Quindi questa trasformazione ordinerà gli elementi in coppia RDD per chiave.

Sintassi:

coppierdd_data.SortBykey ()

Esempio:

In questo esempio, abbiamo creato una coppia rdd - soggetti_rating ed eseguito la trasformazione ordinykey () per restituire valori ordinati in base alla chiave e all'azione di raccolta applicata per ottenere la coppia ordinata RDD.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
# Importa RDD da Pyspark.rdd
da pyspark.RDD Import RDD
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea 6 - coppie di soggetti e valutazioni
soggetti_rating = spark_app.SparkContext.parallelize ([('python', 4), ('javascript', 2), ('linux', 5), ('c#', 4), ('javascript', 4), ('python', 3) ])
#Apply SortByKey () trasformazione sugli argomenti sopra per ordinare le chiavi in ​​ordine crescente
Stampa (Subjects_rating.SortBykey ().raccogliere())
.

Produzione:

[('C#', 4), ('JavaScript', 2), ('JavaScript', 4), ('Linux', 5), ('Python', 4), ('Python', 3)]

Possiamo vedere che la nuova coppia ordinata RDD viene restituita mediante ordinamento in base alla chiave nella coppia effettiva RDD - SUGGERIE_RATING.

RidurrecyKey

RidurrenBykey viene utilizzato per eseguire la trasformazione su una coppia RDD elaborando i dati in parallelo per combinare i valori con chiavi simili. Ha usato alcune funzioni come lambda () per combinare i valori in base alla chiave eseguendo alcune operazioni nella funzione.

Sintassi:

coppierdd_data.RidurreyBykey (funzione Lambda)

Funzione Lambda:

Lambda Element1, Element2: Funzionamento

Esempio:

In questo esempio, abbiamo creato una coppia RDD - SOGGETS_RATING ed eseguito la trasformazione di riduzioneBykey () per eseguire

  1. Somma di valori simili rispetto alla chiave
  2. Differenza di valori simili rispetto alla chiave
  3. Moltiplicazione di valori simili rispetto alla chiave
  4. Divisione di valori simili rispetto alla chiave

Infine, possiamo usare l'azione da collezione () per visualizzare ogni coppia trasformata RDD.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
# Importa RDD da Pyspark.rdd
da pyspark.RDD Import RDD
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea 6 - coppie di soggetti e valutazioni
soggetti_rating = spark_app.SparkContext.parallelize ([('python', 4), ('javascript', 2), ('linux', 5), ('c#', 4), ('javascript', 4), ('python', 3) ])
#Apply RidurrenBykey () trasformazione sui soggetti precedenti_rating per ridurre le chiavi aggiungendo valori con chiavi simili
Stampa (Subjects_rating.RidurreyBykey (Lambda Element1, Element2: Element1 + Element2).raccogliere())
#Apply RidurrenBykey () trasformazione sui soggetti sopra riportati per ridurre le chiavi sottraendo i valori da chiavi simili
Stampa (Subjects_rating.RidurreyBykey (Lambda Element1, Element2: Element1 - Element2).raccogliere())
#Apply RidurrebyKey () trasformazione sui soggetti sopra riportati per ridurre le chiavi moltiplicando i valori con chiavi simili
Stampa (Subjects_rating.RidurreyBykey (Lambda Element1, Element2: Element1 * Element2).raccogliere())
#Apply RidurrenBykey () trasformazione sui soggetti sopra riportati per ridurre le chiavi dividendo i valori con chiavi simili
Stampa (Subjects_rating.RidurrenBykey (Lambda Element1, Element2: Element1 / Element2).raccogliere())

Produzione:

[('Python', 7), ('JavaScript', 6), ('Linux', 5), ('C#', 4)]
[('Python', 1), ('JavaScript', -2), ('Linux', 5), ('C#', 4)]
[('Python', 12), ('JavaScript', 8), ('Linux', 5), ('C#', 4)]
[("Python", 1.33333333333333333), ('javascript', 0.5), ('Linux', 5), ('C#', 4)]
Per la chiave-pitone: i valori sono 4 e 3
La somma: 4+3 = 7
La differenza è: 4-3 = 1
La moltiplicazione: 4*3 = 12
La divisione è: 4/3 = 1.3333
Per key-javascript: i valori sono 2 e 4
La somma: 2+4 = 6
La differenza è: 2-4 = -1
La moltiplicazione: 2*4 = 8
La divisione è: 2/4 = 0.5

Per key-linux e c#: c'è solo un valore per ciascuno, quindi tutte le operazioni risultanti sono le stesse i.e.

Conclusione

Da questo articolo RDD della coppia, abbiamo visto cos'è la trasformazione e come applicare le trasformazioni RDD della coppia. Esistono tre trasformazioni di cui abbiamo discusso: GroupBykey () viene utilizzato per combinare tutti i valori in base alla chiave, SortBykey () restituisce una nuova coppia RDD ordinando la coppia RDD in base alle chiavi in ​​ordine crescente e Ridurre Chiave eseguendo alcune operazioni utilizzando funzioni anonime come la funzione lambda.