Pyspark TakeorDered et Takesample

Pyspark TakeorDered et Takesample
RDD signifie ensemble de données distribuées résilientes. Nous pouvons appeler RDD comme une structure de données fondamentale dans Apache Spark.

Nous devons importer RDD à partir du pyspark.module RDD.

Dans Pyspark pour créer un RDD, nous pouvons utiliser la méthode parallelize ().

Syntaxe:

Spark_App.étincelle.paralléliser (données)

Où les données peuvent être des données unidimensionnelles (données linéaires) ou bidimensionnelles (données en row-colonne).

Dans cet article de Pyspark, nous discuterons des fonctions TakeOrDered () et Takesample ().

Pyspark TakeOrdered ()

La fonction Pyspark TakeOrderEd () est utilisée pour renvoyer un nouveau RDD dans une commande de RDD existant.

Il faut deux paramètres.

Syntaxe:

TakeOrdered (n, clé)

Paramètres:

  1. n est utilisé pour retourner le nombre d'éléments dans une commande dans le nouveau RDD.
  2. La clé est un paramètre facultatif qui prend une fonction anonyme pour obtenir les éléments dans l'ordre croissant ou l'ordre descendant.

Pour l'ordre croissant, la fonction peut être - key = lambda élément: élément

Pour l'ordre descendant, la fonction peut être - key = lambda élément: -element

Il faut un signe moins (-) pour prendre des éléments dans l'ordre descendant.

S'il n'est pas spécifié, les éléments du nouveau RDD seront dans l'ordre croissant.

Exemple 1:

Dans cet exemple, nous créons un RDD avec 20 éléments et appliquons la fonction TakeOrDed () pour obtenir les 10 premiers éléments. 12 premiers éléments séparément dans l'ordre croissant en utilisant le paramètre clé.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# Importer RDD de Pyspark.RDD
de Pyspark.RDD IMPORT RDD
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données sur les étudiants avec 20 éléments
Student_marks = Spark_App.étincelle.Parallélize ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34]))
#Display les données dans RDD
Imprimer ("Données réelles dans RDD:", Student_marks.Carte (élément lambda: élément).collecter())
#Get 10 éléments de RDD dans l'ordre croissant
Imprimer ("10 éléments de RDD dans un ordre ascendant avec la clé comme paramètre:", Student_marks.TakeorDed (10, clé = élément lambda: élément)))
#Get 12 éléments de RDD dans un ordre ascendant
Imprimer ("12 éléments de RDD dans un ordre ascendant avec la clé comme paramètre:", Student_marks.TakeorDed (12, clé = élément lambda: élément)))

Sortir:

Données réelles dans RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 éléments de RDD dans un ordre ascendant avec la clé comme paramètre: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54]
12 éléments de RDD dans un ordre ascendant avec la clé comme paramètre: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54, 56, 56]

Vous pouvez voir que les nouveaux RDD sont retournés avec des éléments dans l'ordre croissant.

Exemple 2:

Dans cet exemple, nous créons un RDD avec 20 éléments et appliquons la fonction TakeOrDed () pour obtenir les 10 premiers éléments. Les 12 premiers éléments sont séparés dans l'ordre croissant sans paramètre clé.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# Importer RDD de Pyspark.RDD
de Pyspark.RDD IMPORT RDD
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données sur les étudiants avec 20 éléments
Student_marks = Spark_App.étincelle.Parallélize ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34]))
#Display les données dans RDD
Imprimer ("Données réelles dans RDD:", Student_marks.Carte (élément lambda: élément).collecter())
#Get 10 éléments de RDD dans l'ordre croissant
Imprimer ("10 éléments de RDD dans une commande ascendante:", Student_marks.TakeorDed (10))
#Get 12 éléments de RDD dans un ordre ascendant
Imprimer ("12 éléments de RDD dans une commande ascendante:", Student_marks.TakeorDed (12))

Sortir:

Données réelles dans RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 éléments de RDD dans une commande ascendante: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54]
12 éléments de RDD dans une commande ascendante: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54, 56, 56]

Vous pouvez voir que les nouveaux RDD sont renvoyés avec des éléments dans l'ordre croissant encore sans paramètre de clé.

Exemple 3:

Dans cet exemple, nous créons un RDD avec 20 éléments et appliquons la fonction TakeOrDed () pour obtenir le premier élément. Les 12 premiers éléments sont séparés par ordre décroissant.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# Importer RDD de Pyspark.RDD
de Pyspark.RDD IMPORT RDD
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données sur les étudiants avec 20 éléments
Student_marks = Spark_App.étincelle.Parallélize ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34]))
#Display les données dans RDD
Imprimer ("Données réelles dans RDD:", Student_marks.Carte (élément lambda: élément).collecter())
#Get 10 éléments de RDD dans l'ordre descendant
Imprimer ("10 éléments de RDD dans une commande décroissante:", Student_marks.TakeorDed (10, clé = élément lambda: -element)))
#Get 12 éléments de RDD dans l'ordre descendant
Imprimer ("12 éléments de RDD dans une commande décroissante:", Student_marks.TakeorDed (12, clé = élément lambda: -element)))

Sortir:

Données réelles dans RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 éléments de RDD dans une commande descendant: [100, 90, 89, 89, 78, 78, 76, 56, 56, 56]
12 éléments de RDD dans une commande décroissante: [100, 90, 89, 89, 78, 78, 76, 56, 56, 56, 54, 45]

Vous pouvez voir que les nouveaux RDD sont retournés avec des éléments dans l'ordre descendant. Pour ce cas, vous devez spécifier le paramètre de clé.

Pyspark Takesample ()

La fonction Pyspark Takesample () est utilisée pour renvoyer un nouveau RDD avec des valeurs aléatoires à partir d'un RDD existant. Il faut deux paramètres.

Syntaxe:

Takeample (remplacer, n)

Paramètres:

  1. remplacer prend des valeurs booléennes. S'il est défini sur vrai, alors les valeurs aléatoires qui reviennent dans le nouveau RDD sont uniques (elles ne sont pas répétées / remplacées à nouveau). S'il est défini sur False, alors les valeurs aléatoires qui reviennent dans un nouveau RDD peuvent être répétées (elles peuvent être répétées / remplacées à nouveau)
  2. n est utilisé pour renvoyer le nombre d'éléments aléatoires dans un nouveau RDD.

Exemple 1:

Dans cet exemple, nous créerons un RDD avec 20 éléments et retournerons 10 éléments. 12 éléments sont séparés sans remplacement.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# Importer RDD de Pyspark.RDD
de Pyspark.RDD IMPORT RDD
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données sur les étudiants avec 20 éléments
Student_marks = Spark_App.étincelle.Parallélize ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34]))
#Display les données dans RDD
Imprimer ("Données réelles dans RDD:", Student_marks.Carte (élément lambda: élément).collecter())
#get 10 éléments du RDD sans remplacement
Imprimer ("10 éléments du RDD sans remplacement:", Student_marks.Takesample (False, 10))
#get 12 éléments du RDD sans remplacement
Imprimer ("12 éléments du RDD sans remplacement:", Student_marks.Takesample (False, 12))

Sortir:

Données réelles dans RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 éléments du RDD sans remplacement: [89, 23, 78, 56, 43, 100, 89, 78, 76, 21]
12 éléments du RDD sans remplacement: [89, 23, 43, 54, 34, 45, 78, 56, 22, 56, 34, 34]

Nous pouvons observer que les valeurs aléatoires ne sont pas remplacées dans le nouveau RDD.

Exemple 2:

Dans cet exemple, nous créerons un RDD avec 20 éléments et retournerons 10 éléments. 12 éléments sont séparés par le remplacement.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# Importer RDD de Pyspark.RDD
de Pyspark.RDD IMPORT RDD
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données sur les étudiants avec 20 éléments
Student_marks = Spark_App.étincelle.Parallélize ([89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34]))
#Display les données dans RDD
Imprimer ("Données réelles dans RDD:", Student_marks.Carte (élément lambda: élément).collecter())
#get 10 éléments du RDD avec remplacement
Imprimer ("10 éléments du RDD avec remplacement:", Student_marks.prend en échantillon (vrai, 10))
#get 12 éléments du RDD avec remplacement
Imprimer ("12 éléments du RDD avec remplacement:", Student_marks.prend en échantillon (vrai, 12))

Sortir:

Données réelles dans RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 éléments du RDD avec remplacement: [90, 34, 78, 34, 34, 89, 23, 22, 76, 21]
12 éléments du RDD par remplacement: [43, 78, 78, 78, 78, 89, 21, 100, 89, 78, 34, 22]

Nous pouvons observer que les valeurs aléatoires sont remplacées dans les deux nouvelles RDD car nous définissons le paramètre sur true.

Conclusion

Dans ce didacticiel Pyspark, nous avons vu comment utiliser TakeOrDed () et Takesample () sur RDD. Les deux sont utilisés pour retourner le nouveau RDD à partir du RDD existant.

TakeOrDed () renvoie le nouveau RDD d'un RDD existant avec des éléments dans un ordre de tri. Il est possible d'obtenir les données triées dans l'ordre décroissant en utilisant le paramètre de clé via la fonction lambda.

Takesample () renvoie le nouveau RDD à partir d'un RDD existant avec certains éléments au hasard. Il est possible de répéter à nouveau les valeurs générées aléatoires dans le nouveau RDD en utilisant le paramètre Remplacer.