Pyspark RDD - soustrait, distinct

Pyspark RDD - soustrait, distinct
Dans Python, Pyspark est un module Spark utilisé pour fournir un type de traitement similaire comme Spark en utilisant DataFrame.

RDD signifie ensemble de données distribuées résilientes. Nous pouvons appeler RDD comme une structure de données fondamentale dans Apache Spark. Il stockera les données sous forme de lignes et de colonnes comme un dataframe.

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

Dans Pyspark, pour créer des données ou un dataframe, nous devons 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 de colonne de ligne).

Dans ce tutoriel, nous verrons sur les opérations de Pyspark RDD () et distinctes ().

Pyspark RDD - Soustraire ()

soustraire() dans RDD est similaire à une opération de différence définie qui renverra le nouveau RDD qui comprend les éléments présents dans le premier RDD mais pas présent dans le deuxième RDD.

Nous avons donc besoin de deux RDD pour effectuer cette opération.

Syntaxe:

Rdd_data1.soustraire (rdd_data2)

Où:

  1. RDD_DATA1 est le premier RDD
  2. RDD_DATA2 est le deuxième RDD.

Exemple 1:

Dans cet exemple, nous créerons deux RDD avec des données numériques - sujets_1 et sujets_2 et effectuer la soustraire () sur deux RDD.

# 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 5 - Marques de sujet
sujets_1 = spark_app.étincelle.Parallélize ([100,34,56,54,45])
#display subjet_1 rdd
print ("sujets_1 rdd:", sujets_1.collecter())
# Créer 5 - Marques de sujet
sujets_2 = spark_app.étincelle.Parallélize ([90,89,34,56,45])
#display subjet_2 rdd
print ("sujets_2 rdd:", sujets_2.collecter())
#perform soustrait () Opération sur les deux RDD supérieurs
imprimer ("soustraire () opération sur sujets_1 avec sujets_2:", sujets_1.soustraire (sujets_2).collecter())
#perform soustrait () Opération sur les deux RDD supérieurs
imprimer ("soustraire () opération sur sujets_2 avec sujets_1:", sujets_2.soustraire (sujets_1).collecter())

Sortir:

Sujets_1 RDD: [100, 34, 56, 54, 45]
Sujets_2 RDD: [90, 89, 34, 56, 45]
Soustraire () Opération sur sujets_1 avec sujets_2: [100, 54]
Soustraire () Opération sur sujets_2 avec sujets_1: [89, 90]

De la sortie, nous pouvons voir qu'il y a 5 éléments dans les RDD.

Dans la première opération, nous effectuons une soustraction sur sujets_1 avec des sujets_2. Ici, 100 et 54 sont présents dans sujets_1 mais pas dans sujets_2. Alors, ils ont été retournés.

Dans la deuxième opération, nous effectuons une soustraction sur les sujets_2 avec des sujets_1. Ici, 89 et 90 sont présents dans les sujets_2 mais pas dans les sujets_1. Alors, ils ont été retournés.

Exemple 2:

Dans cet exemple, nous créerons deux RDD avec des données de chaîne - sujets_1 et sujets_2 et effectuerons la soustraire () sur deux RDD.

# 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 3 - Noms de sujet
sujets_1 = spark_app.étincelle.Parallélize (["Linux", "bash", "javascript"])
#display subjet_1 rdd
print ("sujets_1 rdd:", sujets_1.collecter())
# Créer 2 - Noms de sujet
sujets_2 = spark_app.étincelle.Parallélize (["Linux", "Java"])
#display subjet_2 rdd
print ("sujets_2 rdd:", sujets_2.collecter())
#perform soustrait () Opération sur les deux RDD supérieurs
imprimer ("soustraire () opération sur sujets_1 avec sujets_2:", sujets_1.soustraire (sujets_2).collecter())
#perform soustrait () Opération sur les deux RDD supérieurs
imprimer ("soustraire () opération sur sujets_2 avec sujets_1:", sujets_2.soustraire (sujets_1).collecter())

Sortir:

sujets_1 rdd: ['Linux', 'Bash', 'JavaScript']
sujets_2 rdd: ['linux', 'java']
Soustraire () Opération sur sujets_1 avec sujets_2: ['bash', 'javascript']
Soustraire () Opération sur sujets_2 avec sujets_1: ['java']

De la sortie, nous pouvons voir qu'il y a 5 éléments dans les RDD.

Dans la première opération, nous effectuons une soustraction sur les sujets_1 avec des sujets_2. Ici, «bash» et «javascript» sont présents dans sujets_1 mais pas dans sujets_2. Alors, ils ont été retournés.

Dans la deuxième opération, nous effectuons une soustraction sur sujets_2 avec des sujets_1. Ici 'java' est présent dans sujets_2 mais pas dans sujets_1. Donc, il est retourné.

Pyspark Rdd - distinct ()

distinct() dans RDD est utilisé pour ne retourner que des valeurs uniques de RDD. Il est appliqué sur un seul RDD

Nous avons donc besoin d'un RDD pour effectuer cette opération. Il ne prend aucun paramètre.

Syntaxe:

Rdd_data.distinct()

Où, rdd_data1 est le premier RDD.

Exemple 1:

Dans cet exemple, nous créerons un sujet RDD avec 10 valeurs numériques et renvoyer des valeurs uniques en appliquant une opération distincte ().

# 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 10 - Marques de sujet
sujets_1 = spark_app.étincelle.Parallélize ([34,56,54,45,45,56,54,4,3,3])
#display subjet_1 rdd
print ("sujets_1 rdd:", sujets_1.collecter())
#Perform Distinct () Opération sur RDD ci-dessus.
imprimer ("Distinct () Operation sur sujets_1:", sujets_1.distinct().collecter())

Sortir:

Sujets_1 RDD: [34, 56, 54, 45, 45, 56, 54, 4, 3, 3]
Opération distincte sur sujets_1: [34, 56, 54, 4, 45, 3]

Nous avons créé un RDD avec 10 valeurs entières qui incluent des doublons. Après avoir appliqué distinct () pour ne retourner que des valeurs uniques.

Exemple 2:

Dans cet exemple, nous créerons un RDD Subterts_1 avec 5 valeurs de chaîne et renvoyer des valeurs uniques en appliquant une opération distincte ().

# 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 5 - Sujets
sujets_1 = spark_app.étincelle.Parallélize ([«Java», «Java», «Python», «Javascript», «JavaScript»])
#display subjet_1 rdd
print ("sujets_1 rdd:", sujets_1.collecter())
#Perform Distinct () Opération sur RDD ci-dessus.
imprimer ("Distinct () Operation sur sujets_1:", sujets_1.distinct().collecter())

Sortir:

sujets_1 rdd: ['java', 'java', 'python', 'javascript', 'javascript']
Opération distincte () sur sujets_1: ['java', 'python', 'javascript']

Nous avons créé un RDD avec 5 valeurs de chaîne qui incluent des doublons. Après cela, nous avons appliqué distinct () pour ne retourner que des valeurs uniques. Les valeurs uniques renvoyées sont - Java, Python et JavaScript.

Conclusion

Dans ce didacticiel Pyspark RDD, nous avons discuté des méthodes de soustraire () et distinctes ().soustraire () comme appliqué sur deux RDD. Il est utilisé pour retourner les éléments présents dans le premier RDD mais pas présent dans le second. RDD.distinct () est appliqué sur un seul RDD qui est utilisé pour retourner des éléments uniques du RDD.