Pyspark TakeOrderd e Takesample

Pyspark TakeOrderd e Takesample
RDD sta per set di dati distribuiti resilienti. Possiamo chiamare RDD come struttura di dati fondamentali in Apache Spark.

Dobbiamo importare RDD dal pyspark.Modulo RDD.

In pyspark per creare un RDD, possiamo usare il metodo parallelize ().

Sintassi:

Spark_app.SparkContext.parallelizza (dati)

Laddove i dati possono essere un dati monodimensionali (dati lineari) o bidimensionali (dati di riga-colonna).

In questo articolo di Pyspark, discuteremo delle funzioni Takeordered () e Takesample ().

Pyspark TakeOrderded ()

La funzione pyspark takeorderd () viene utilizzata per restituire un nuovo RDD in un ordine da RDD esistente.

Ci vogliono due parametri.

Sintassi:

TakeOrderted (N, Key)

Parametri:

  1. n viene utilizzato per restituire il numero di elementi in un ordine nel nuovo RDD.
  2. La chiave è un parametro opzionale che prende una funzione anonima per ottenere gli elementi in ordine crescente o ordine decrescente.

Per l'ordine ascendente, la funzione può essere - key = Lambda Element: Element

Per l'ordine decrescente, la funzione può essere - key = elemento lambda: -element

Il segno meno (-) impiega gli elementi in ordine decrescente.

Se non è specificato, gli elementi nel nuovo RDD saranno in ordine crescente.

Esempio 1:

In questo esempio, stiamo creando un RDD con 20 elementi e applicando la funzione TakeOrdered () per ottenere i primi 10 elementi. Primi 12 elementi separatamente in ordine crescente usando il parametro chiave.

#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 dati per gli studenti con 20 elementi
Student_Marks = Spark_app.SparkContext.parallelize ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])))
#Display Data in RDD
Stampa ("Dati effettivi in ​​RDD:", Student_Marks.Mappa (Lambda Element: Element).raccogliere())
#Get 10 elementi da RDD in ordine crescente
Stampa ("10 elementi da RDD in un ordine ascendente con la chiave come parametro:", Student_Marks.TakeOrdered (10, Key = Lambda Element: Element))
#Get 12 elementi da RDD in un ordine ascendente
Stampa ("12 elementi da RDD in un ordine ascendente con la chiave come parametro:", Student_Marks.TakeOrdered (12, Key = Lambda Element: Element))

Produzione:

Dati effettivi in ​​RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementi da RDD in un ordine ascendente con chiave come parametro: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54]
12 elementi da RDD in un ordine ascendente con chiave come parametro: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54, 56, 56]

Puoi vedere che i nuovi RDD vengono restituiti con elementi in ordine crescente.

Esempio 2:

In questo esempio, stiamo creando un RDD con 20 elementi e applicando la funzione TakeOrdered () per ottenere i primi 10 elementi. I primi 12 elementi sono separati in ordine crescente senza parametro chiave.

#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 dati per gli studenti con 20 elementi
Student_Marks = Spark_app.SparkContext.parallelize ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])))
#Display Data in RDD
Stampa ("Dati effettivi in ​​RDD:", Student_Marks.Mappa (Lambda Element: Element).raccogliere())
#Get 10 elementi da RDD in ordine crescente
Stampa ("10 elementi da RDD in un ordine ascendente:", Student_Marks.TakeOrdered (10))
#Get 12 elementi da RDD in un ordine ascendente
Stampa ("12 elementi da RDD in un ordine ascendente:", Student_Marks.Takeordered (12))

Produzione:

Dati effettivi in ​​RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementi da RDD in un ordine ascendente: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54]
12 elementi da RDD in un ordine ascendente: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54, 56, 56]

Puoi vedere che i nuovi RDD vengono restituiti con elementi in ordine crescente senza parametri chiave.

Esempio 3:

In questo esempio, stiamo creando un RDD con 20 elementi e applicando la funzione Takeorderd () per ottenere il primo elemento da 10 elementi. I primi 12 elementi sono separati in ordine decrescente.

#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 dati per gli studenti con 20 elementi
Student_Marks = Spark_app.SparkContext.parallelize ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])))
#Display Data in RDD
Stampa ("Dati effettivi in ​​RDD:", Student_Marks.Mappa (Lambda Element: Element).raccogliere())
#Get 10 elementi da RDD in ordine decrescente
Stampa ("10 elementi da RDD in un ordine discendente:", Student_Marks.TakeOrdered (10, Key = Lambda Element: -element))
#Get 12 elementi da RDD in ordine decrescente
Stampa ("12 elementi da RDD in un ordine decrescente:", Student_Marks.TakeOrdered (12, Key = Lambda Element: -element))

Produzione:

Dati effettivi in ​​RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementi da RDD in un ordine discendente: [100, 90, 89, 89, 78, 78, 76, 56, 56, 56]
12 elementi da RDD in un ordine discendente: [100, 90, 89, 89, 78, 78, 76, 56, 56, 56, 54, 45]

Puoi vedere che i nuovi RDD vengono restituiti con elementi in ordine decrescente. In questo caso, è necessario specificare il parametro chiave.

Pyspark Takesample ()

La funzione pyspark takeample () viene utilizzata per restituire un nuovo RDD con valori casuali da un RDD esistente. Ci vogliono due parametri.

Sintassi:

Takeample (sostituire, n)

Parametri:

  1. Sostituisci prende i valori booleani. Se è impostato su True, i valori casuali che stanno tornando in nuovi RDD sono unici (non vengono nuovamente ripetuti/sostituiti). Se è impostato su False, i valori casuali che stanno tornando in nuovi RDD possono essere ripetuti (possono essere ripetuti/sostituiti di nuovo)
  2. n viene utilizzato per restituire il numero di elementi casuali in un nuovo RDD.

Esempio 1:

In questo esempio, creeremo un RDD con 20 elementi e restituiremo 10 elementi. 12 elementi sono separati senza sostituzione.

#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 dati per gli studenti con 20 elementi
Student_Marks = Spark_app.SparkContext.parallelize ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])))
#Display Data in RDD
Stampa ("Dati effettivi in ​​RDD:", Student_Marks.Mappa (Lambda Element: Element).raccogliere())
#get 10 elementi da RDD senza sostituzione
Stampa ("10 elementi dalla RDD senza sostituzione:", Student_Marks.Takeample (false, 10))
#get 12 elementi dalla RDD senza sostituzione
Stampa ("12 elementi dalla RDD senza sostituzione:", Student_Marks.takeample (false, 12))

Produzione:

Dati effettivi in ​​RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementi dalla RDD senza sostituzione: [89, 23, 78, 56, 43, 100, 89, 78, 76, 21]
12 elementi dalla RDD senza sostituzione: [89, 23, 43, 54, 34, 45, 78, 56, 22, 56, 34, 34]

Possiamo osservare che i valori casuali non vengono sostituiti nel nuovo RDD.

Esempio 2:

In questo esempio, creeremo un RDD con 20 elementi e restituiremo 10 elementi. 12 elementi sono separati con la sostituzione.

#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 dati per gli studenti con 20 elementi
Student_Marks = Spark_app.SparkContext.parallelize ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])))
#Display Data in RDD
Stampa ("Dati effettivi in ​​RDD:", Student_Marks.Mappa (Lambda Element: Element).raccogliere())
#get 10 elementi da RDD con sostituzione
Stampa ("10 elementi da RDD con sostituzione:", Student_Marks.Takeample (vero, 10))
#get 12 elementi da RDD con sostituzione
Stampa ("12 elementi dalla RDD con sostituzione:", Student_Marks.Takeample (vero, 12))

Produzione:

Dati effettivi in ​​RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementi dalla RDD con sostituzione: [90, 34, 78, 34, 34, 89, 23, 22, 76, 21]
12 elementi dalla RDD con sostituzione: [43, 78, 78, 78, 78, 89, 21, 100, 89, 78, 34, 22]

Possiamo osservare che i valori casuali sono sostituiti in entrambi i nuovi RDD poiché impostiamo il parametro su True.

Conclusione

In questo tutorial Pyspark, abbiamo visto come usare le funzioni di takeorderd () e takeample () su RDD. Entrambi sono usati per restituire il nuovo RDD dall'Sistenti RDD.

Takeordered () restituisce il nuovo RDD da un RDD esistente con elementi in un ordine di ordinamento. È possibile ottenere i dati ordinati in ordine decrescente utilizzando il parametro chiave attraverso la funzione Lambda.

Takeample () restituisce il nuovo RDD da un RDD esistente con alcuni elementi in modo casuale. È possibile ripetere nuovamente i valori generati in modo casuale nel nuovo RDD usando il parametro Sostituisci.