Pyspark Rdd - intersection, cartésien

Pyspark Rdd - intersection, cartésien
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 une structure de données fondamentale dans Apache Spark. Il stockera les données sous forme de lignes et de colonnes similaires à un dataframe ou linéairement.

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

Ainsi, 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 unidimensionnelles (données linéaires) ou deux dimensions (données en row-colonne).

Dans ce didacticiel, nous découvrirons les opérations Pyspark RDD Soustraire () et Distinct ().

Pyspark Rdd - Intersection ()

intersection() dans RDD renverra le nouveau RDD qui comprend les éléments présents dans le premier RDD ainsi que le deuxième RDD. Simplement, il ne renvoie que les éléments communs des deux RDD.

Donc, nous avons besoin de deux RDD pour effectuer cette opération.

Syntaxe:

Rdd_data1.intersection (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 l'intersection () 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 Intersection () Opération sur les deux RDD supérieurs
imprimer ("opération intersection () sur sujets_1 et sujets_2:", sujets_1.intersection (sujets_2).collecter())

Sortir:

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

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

Nous effectuons une intersection sur sujets_1 et sujets_2. Ici, 56,45 et 34 sont présents dans sujets_1 et sujets_2. Alors, ils ont été retournés.

Exemple 2:

Dans cet exemple, nous créerons deux RDD avec des chaînes - sujets_1 et sujets_2 et effectuerons l'intersection () 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 Intersection () Opération sur les deux RDD supérieurs
imprimer ("opération intersection () sur sujets_1 et sujets_2:", sujets_1.intersection (sujets_2).collecter())

Sortir:

sujets_1 rdd: ['Linux', 'Bash', 'JavaScript']
sujets_2 rdd: ['linux', 'java']
Intersection () Opération sur sujets_1 et sujets_2: ['Linux']

De la sortie, nous pouvons voir que seul «Linux» est courant dans les deux RDD. Donc, il est retourné.

Pyspark Rdd - Cartesian ()

cartésien() dans RDD renvoie le nouveau RDD qui comprend tous les éléments des deux RDD. Il renvoie un produit cartésien tel que chaque élément du premier RDD est combiné avec tous les éléments du deuxième RDD sous la forme d'une paire.

Donc, nous avons besoin de deux RDD pour effectuer cette opération.

Syntaxe:

Rdd_data1.cartésien (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 des cartesian () 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 2 - Marques de sujet
sujets_1 = spark_app.étincelle.parallélize ([100,34])
#display subjet_1 rdd
print ("sujets_1 rdd:", sujets_1.collecter())
# Créer 2 - Marques de sujet
sujets_2 = spark_app.étincelle.parallélize ([56,45])
#display subjet_2 rdd
print ("sujets_2 rdd:", sujets_2.collecter())
#Perform cartesian () Opération sur les deux RDD
imprimer ("cartesian () opération sur sujets_1 et sujets_2:", sujets_1.cartésien (sujets_2).collecter())

Sortir:

Sujets_1 RDD: [100, 34]
Sujets_2 RDD: [56, 45]
Cartesian () Opération sur sujets_1 et sujets_2: [(100, 56), (100, 45), (34, 56), (34, 45)]

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

Nous effectuons un cartésien sur sujets_1 et sujets_2. Les éléments de sujets_1 sont associés à chaque élément de sujets_2.

Exemple 2:

Dans cet exemple, nous créerons deux RDD avec des chaînes - sujets_1 et sujets_2 et effectuer des cartesian () 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 cartesian () Opération sur les deux RDD
imprimer ("cartesian () opération sur sujets_1 et sujets_2:", sujets_1.cartésien (sujets_2).collecter())

Sortir:

sujets_1 rdd: ['Linux', 'Bash', 'JavaScript']
sujets_2 rdd: ['linux', 'java']
Cartesian () Opération sur sujets_1 et sujets_2: [('Linux', 'Linux'), ('Linux', 'Java'), ('Bash', 'Linux'), ('Javascript', 'Linux'),,, ('bash', 'java'), ('javascript', 'java')]

De la sortie, nous pouvons voir qu'il y a 3 éléments dans le premier RDD et 2 éléments dans le deuxième RDD.

Nous effectuons un cartésien sur sujets_1 et sujets_2. Ici, les éléments de sujets_1 sont jumelés avec chaque élément de Subects_2.

Conclusion

Dans ce tutoriel Pyspark RDD, nous avons vu comment effectuer l'intersection () et le cartesien (). Nous avons besoin de deux RDD pour effectuer ces opérations.Intersection () ne renvoie que les éléments communs du RDD et Cartesian () renvoie un produit cartésien tel que chaque élément du premier RDD est combiné avec tous les éléments du deuxième RDD sous la forme d'une paire.