Pyspark - SQL rejoint

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

Dans Pyspark, les jointures SQL sont utilisées pour rejoindre deux ou plusieurs dataframes en fonction de la condition donnée. Nous avons juste besoin de passer une requête SQL pour effectuer différentes jointures sur les Pyspark DataFrames. Étincelle.SQL () est utilisé pour effectuer SQL Join in Pyspark. Avant cela, nous devons créer une vue temporaire pour les deux Pyspark DataFrames à l'aide de la méthode CreateOrReplacempView (). Sur cette vue, nous pouvons effectuer des jointures SQL.

Syntaxe:

trame de données.createOrReplaceTempView ("View_name")

Où:

  1. DataFrame est le Pyspark DataFrame.
  2. View_name est le nom temporaire du dataframe.

Il existe différentes jointures qui sont appliquées sur les deux pyspark dataframes. Avant d'aller connaître ces types, créons deux pyspark dataframes.

First DataFrame:

Dans l'exemple suivant, nous allons créer le Pyspark DataFrame avec 5 lignes et 6 colonnes avec des données personnelles et afficher les étudiants en utilisant la méthode Show ():

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.AppName ("Linuxhint").getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = ['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi' ',' Âge ': 16,' height ': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
# trame de données
df.montrer()

Sortir:

Deuxième Dataframe

Dans l'exemple suivant, nous allons créer le Pyspark DataFrame avec 5 lignes et 3 colonnes avec des données de marque étudiante et afficher à l'aide de la méthode Show ():

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données Student_marks avec 5 lignes et 6 attributs
Students_Marks = ['Rollno': '001', 'Subject1': 78, 'Subject2': 98,
'rollno': '002', 'sujet1': 83, 'sujet2': 69,
'rollno': '005', 'sujet1': 95, 'sujet2': 90,
'rollno': '004', 'sujet1': 76, 'sujet2': 100,
'rollno': '007', 'sujette1': 90, 'sujet2': 91]
# Créer le DataFrame
df2 = spark_app.CreatedataFrame (Students_marks)
# trame de données
df2.montrer()

Sortir:

Observation:

À partir des deux dataframes, nous avons observé que RollNO est la colonne qui est courante dans les deux dataframes. Ainsi, nous pouvons appliquer la condition à cette colonne. Les lignes - 001, 002, 004 et 005 - correspondent dans les deux dataframes.

JOINTURE INTERNE

Résultats de la jointure intérieure dans le DataFrame en sélectionnant uniquement les lignes correspondantes à partir de deux dataframes.
Le mot-clé utilisé est «intérieur», qui est la jointure par défaut.

Syntaxe:

étincelle.SQL (SELECT * FROM V1 INNER JOIN V2 sur V1.Column_name == V2.nom de colonne)

Où:

  1. * fait référence à la sélection de toutes les colonnes à partir des deux dataframes.
  2. V1 fait référence à la vue temporaire pour le premier DataFrame.
  3. V2 fait référence à la vue temporaire pour le deuxième DataFrame.
  4. Column_name est la colonne qui existe commune (lignes communes) dans les deux dataframes. (Sur la base de cette colonne, nous effectuerons l'opération de jointure)

Exemple:

Dans cet exemple, nous utilisons le mot-clé Inner Join pour rejoindre les deux DataFrames. Ainsi, le résultat sera des lignes de 001, 002, 004 et 005. Parce qu'ils sont communs dans les deux dataframes dans la colonne RollNO. Enfin, nous appliquons la méthode show () pour afficher le pyspark jointframe.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.AppName ("Linuxhint").getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = ['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
# Créer des données Student_marks avec 5 lignes et 6 attributs
Students_Marks = ["Rollno ':' 001 ',' Subject1 ': 78,' Subject2 ': 98,
'rollno': '002', 'sujet1': 83, 'sujet2': 69,
'rollno': '005', 'sujet1': 95, 'sujet2': 90,
'rollno': '004', 'sujet1': 76, 'sujet2': 100,
'rollno': '007', 'sujette1': 90, 'sujet2': 91]
# Créer le DataFrame
df2 = spark_app.CreatedataFrame (Students_marks)
# Créer une vue pour DF avec des noms comme étudiant
df.CreateorReplaceTempView ("Student")
# Créer une vue pour DF2 avec des noms comme marques
df2.createOrReplaceTempView ("marques")
# Effectuez une jointure intérieure
étincelle.SQL ("SELECT * From Student Inner Join Marks on Student.rollno == marques.rollno ").montrer()

Sortir:

JOINT GAUCHE

Les résultats de la jointure de gauche dans le DataFrame en sélectionnant toutes les lignes dans le premier DataFrame et ne correspondant que dans les lignes de la deuxième DataFrame par rapport aux lignes dans le premier DataFrame.

Syntaxe:

étincelle.SQL (Sélectionnez * From V1 gauche Join V2 sur V1.Column_name == V2.nom de colonne)

Où:

  1. * fait référence à sélectionner toutes les colonnes dans les deux dataframes.
  2. V1 fait référence à la vue temporaire pour le premier DataFrame.
  3. V2 fait référence à la vue temporaire pour le deuxième DataFrame.
  4. Column_name est la colonne qui existe commune (lignes communes) dans les deux dataframes. (Sur la base de cette colonne, nous effectuerons l'opération de jointure)

Exemple:

Dans cet exemple, nous utilisons le mot-clé de gauche à gauche pour rejoindre les deux dataframes. Ainsi, le résultat sera de 001 002, 003, 004 et 005 des lignes du premier DataFrame et 001, 002, 004 et 005 des lignes de la deuxième données de données. La ligne 007 dans le deuxième dataframe n'est appariée avec aucune des lignes dans le premier dataframe. Donc, Null sera ajouté dans cette ligne. Enfin, nous appliquons la méthode show () pour afficher le pyspark jointframe.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = ['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
# Créer des données Student_marks avec 5 lignes et 6 attributs
Students_Marks = ['Rollno': '001', 'Subject1': 78, 'Subject2': 98,
'rollno': '002', 'sujet1': 83, 'sujet2': 69,
'rollno': '005', 'sujet1': 95, 'sujet2': 90,
'rollno': '004', 'sujet1': 76, 'sujet2': 100,
'rollno': '007', 'sujette1': 90, 'sujet2': 91]
# Créer le DataFrame
df2 = spark_app.CreatedataFrame (Students_marks)
# Créer une vue pour DF avec des noms comme étudiant
df.CreateorReplaceTempView ("Student")
# Créer une vue pour DF2 avec des noms comme marques
df2.createOrReplaceTempView ("marques")
# interpréter la gauche à gauche
étincelle.SQL ("SELECT * From Student gauche Rejoignez des marques sur Student.rollno == marques.rollno ").montrer()

Sortir:

JOINTURE EXTERNE GAUCHE

Résultats de la jointure extérieure gauche dans le dataframe en sélectionnant toutes les lignes dans le premier DataFrame et en ne faisant correspondre que les lignes de la deuxième DataFrame par rapport aux lignes dans le premier DataFrame. C'est similaire à la jointure de gauche.

Syntaxe:

étincelle.SQL (Sélectionner * à partir de v1 gauche de jointure extérieure v2 sur v1.Column_name == V2.nom de colonne)

Où:

  1. * fait référence à sélectionner toutes les colonnes dans les deux dataframes.
  2. V1 fait référence à la vue temporaire pour le premier DataFrame.
  3. V2 fait référence à la vue temporaire pour le deuxième DataFrame.
  4. Column_name est la colonne qui existe commune (lignes communes) dans les deux dataframes. (Sur la base de cette colonne, nous effectuerons l'opération de jointure)

Exemple:
Dans cet exemple, nous utilisons le mot-clé de jointure externe gauche pour rejoindre les deux dataframes. Ainsi, le résultat sera des lignes 001, 002, 003, 004 et 005 à partir du premier DataFrame et 001, 002, 004 et 005 des lignes du deuxième DataFrame Data. La ligne 007 dans le deuxième dataframe n'est appariée à aucune ligne dans le premier dataframe. Donc, Null sera ajouté dans cette ligne. Enfin, nous appliquons la méthode show () pour afficher le pyspark jointframe.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = ['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
# Créer des données Student_marks avec 5 lignes et 6 attributs
Students_Marks = ['Rollno': '001', 'Subject1': 78, 'Subject2': 98,
'rollno': '002', 'sujet1': 83, 'sujet2': 69,
'rollno': '005', 'sujet1': 95, 'sujet2': 90,
'rollno': '004', 'sujet1': 76, 'sujet2': 100,
'rollno': '007', 'sujette1': 90, 'sujet2': 91]
# Créer le DataFrame
df2 = spark_app.CreatedataFrame (Students_marks)
# Créer une vue pour DF avec des noms comme étudiant
df.CreateorReplaceTempView ("Student")
# Créer une vue pour DF2 avec des noms comme marques
df2.createOrReplaceTempView ("marques")
# effectuer la jointure extérieure gauche
étincelle.SQL ("SELECT * From Student Left Left Outter Join Marks on Student.rollno == marques.rollno ").montrer()

Sortir:

À droite

Les résultats de la jointure à droite dans le DataFrame en sélectionnant toutes les lignes dans le deuxième DataFrame et ne correspondant que dans les lignes de la première dataframe par rapport aux lignes dans le deuxième DataFrame. Il place nul Valeurs pour les lignes inégalées dans le premier DataFrame.

Syntaxe:

étincelle.SQL (sélectionnez * From V1 Right Rejoin v2 sur v1.Column_name == V2.nom de colonne)

Où:

  1. * fait référence à sélectionner toutes les colonnes dans les deux dataframes.
  2. V1 fait référence à la vue temporaire pour le premier DataFrame.
  3. V2 fait référence à la vue temporaire pour le deuxième DataFrame.
  4. Column_name est la colonne qui existe commune (lignes communes) dans les deux dataframes. (Sur la base de cette colonne, nous effectuerons l'opération de jointure)

Exemple:

Dans cet exemple, nous utilisons le mot clé à droite pour rejoindre les deux dataframes. Ainsi, le résultat sera des lignes 001, 002, 007, 004 et 005 de la deuxième DataFrame et 001, 002, 004 et 005 des premières lignes de données de données. La ligne 003 dans la première dataframe n'est égalée à aucune des lignes dans la deuxième dataframe. Donc, Null sera ajouté dans cette ligne. Enfin, nous appliquons la méthode show () pour afficher le pyspark jointframe.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = ['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
# Créer des données Student_marks avec 5 lignes et 6 attributs
Students_Marks = ['Rollno': '001', 'Subject1': 78, 'Subject2': 98,
'rollno': '002', 'sujet1': 83, 'sujet2': 69,
'rollno': '005', 'sujet1': 95, 'sujet2': 90,
'rollno': '004', 'sujet1': 76, 'sujet2': 100,
'rollno': '007', 'sujette1': 90, 'sujet2': 91]
# Créer le DataFrame
df2 = spark_app.CreatedataFrame (Students_marks)
# Créer une vue pour DF avec des noms comme étudiant
df.CreateorReplaceTempView ("Student")
# Créer une vue pour DF2 avec des noms comme marques
df2.createOrReplaceTempView ("marques")
# interpréter à droite jointure
étincelle.SQL ("SELECT * From Student Right Rewing Marks on Student.rollno == marques.rollno ").montrer()

Sortir:

Join extérieure droite

Résultats de la jointure extérieure droite dans le dataframe en sélectionnant toutes les lignes dans le deuxième DataFrame et en ne faisant correspondre que les lignes de la première dataframe par rapport aux lignes dans la deuxième données de données. Il place nul Valeurs pour les lignes inégalées dans le premier DataFrame. C'est similaire à la bonne jointure.

Syntaxe:
étincelle.SQL (Sélectionner * à partir de V1 Right Exter Join V2 sur V1.Column_name == V2.nom de colonne)

Où:

  1. * fait référence à sélectionner toutes les colonnes dans les deux dataframes.
  2. V1 fait référence à la vue temporaire pour le premier DataFrame.
  3. V2 fait référence à la vue temporaire pour le deuxième DataFrame.
  4. Column_name est la colonne qui existe commune (lignes communes) dans les deux dataframes. (Sur la base de cette colonne, nous effectuerons l'opération de jointure)

Exemple:

Dans cet exemple, nous utilisons le mot-clé droit à droite pour rejoindre les deux dataframes. Ainsi, le résultat sera des lignes 001, 002, 007, 004 et 005 de la deuxième DataFrame et 001, 002, 004 et 005 des premières lignes de données de données. La ligne 003 dans First DataFrame n'est appariée à aucune des lignes dans la deuxième DataFrame. Donc, Null sera ajouté dans cette ligne. Enfin, nous appliquons la méthode show () pour afficher le pyspark jointframe.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = ['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
# Créer des données Student_marks avec 5 lignes et 6 attributs
Students_Marks = ['Rollno': '001', 'Subject1': 78, 'Subject2': 98,
'rollno': '002', 'sujet1': 83, 'sujet2': 69,
'rollno': '005', 'sujet1': 95, 'sujet2': 90,
'rollno': '004', 'sujet1': 76, 'sujet2': 100,
'rollno': '007', 'sujette1': 90, 'sujet2': 91]
# Créer le DataFrame
df2 = spark_app.CreatedataFrame (Students_marks)
# Créer une vue pour DF avec des noms comme étudiant
df.CreateorReplaceTempView ("Student")
# Créer une vue pour DF2 avec des noms comme marques
df2.createOrReplaceTempView ("marques")
# Effectuez la jointure extérieure droite
étincelle.SQL ("SELECT * From Student Right Outter Join Marks on Student.rollno == marques.rollno ").montrer()

Sortir:

Rejoindre à part entière

Résultats de la jointure complète dans le dataframe en sélectionnant toutes les lignes dans les deux dataframes. Il place nul Valeurs pour les lignes inégalées dans les deux dataframes à travers les lignes.

Syntaxe:

étincelle.SQL (SELECT * FROM V1 FULL JOIN V2 sur V1.Column_name == V2.nom de colonne)

Où:

  1. * fait référence à sélectionner toutes les colonnes dans les deux dataframes.
  2. V1 fait référence à la vue temporaire pour le premier DataFrame.
  3. V2 fait référence à la vue temporaire pour le deuxième DataFrame.
  4. Column_name est la colonne qui existe commune (lignes communes) dans les deux dataframes. (Sur la base de cette colonne, nous effectuerons l'opération de jointure)

Exemple:

Dans l'exemple suivant, nous utilisons un mot-clé complet pour rejoindre les deux dataframes. Ainsi, le résultat proviendra des deux dataframes.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = ['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
# Créer des données Student_marks avec 5 lignes et 6 attributs
Students_Marks = ['Rollno': '001', 'Subject1': 78, 'Subject2': 98,
'rollno': '002', 'sujet1': 83, 'sujet2': 69,
'rollno': '005', 'sujet1': 95, 'sujet2': 90,
'rollno': '004', 'sujet1': 76, 'sujet2': 100,
'rollno': '007', 'sujette1': 90, 'sujet2': 91]
# Créer le DataFrame
df2 = spark_app.CreatedataFrame (Students_marks)
# Créer une vue pour DF avec des noms comme étudiant
df.CreateorReplaceTempView ("Student")
# Créer une vue pour DF2 avec des noms comme marques
df2.createOrReplaceTempView ("marques")
# Effectuez une jointure complète
étincelle.SQL ("SELECT * From Student Full Join Marks on Student.rollno == marques.rollno ").montrer()

Sortir:

Jointure extérieure complète

Résultats de la jointure extérieure complète dans le dataframe en sélectionnant toutes les lignes dans les dataframes. Il place nul Valeurs pour les lignes inégalées dans les deux dataframes à travers les lignes.

Syntaxe:

étincelle.SQL (SELECT * FROM V1 FULL OUTER JOIN V2 sur V1.Column_name == V2.nom de colonne)

Où:

  1. * fait référence à sélectionner toutes les colonnes dans les deux dataframes.
  2. V1 fait référence à la vue temporaire pour le premier DataFrame.
  3. V2 fait référence à la vue temporaire pour le deuxième DataFrame.
  4. Column_name est la colonne qui existe commune (lignes communes) dans les deux dataframes. (Sur la base de cette colonne, nous effectuerons l'opération de jointure)

Exemple:

Dans cet exemple, nous utilisons un mot-clé complet de jointure extérieure pour rejoindre les deux dataframes. Ainsi, le résultat proviendra des deux dataframes.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = ['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
# Créer des données Student_marks avec 5 lignes et 6 attributs
Students_Marks = ['Rollno': '001', 'Subject1': 78, 'Subject2': 98,
'rollno': '002', 'sujet1': 83, 'sujet2': 69,
'rollno': '005', 'sujet1': 95, 'sujet2': 90,
'rollno': '004', 'sujet1': 76, 'sujet2': 100,
'rollno': '007', 'sujette1': 90, 'sujet2': 91]
# Créer le DataFrame
df2 = spark_app.CreatedataFrame (Students_marks)
# Créer une vue pour DF avec des noms comme étudiant
df.CreateorReplaceTempView ("Student")
# Créer une vue pour DF2 avec des noms comme marques
df2.createOrReplaceTempView ("marques")
# Effectuer une jointure extérieure complète
étincelle.SQL ("Sélectionner * à partir de l'étudiant complet des marques de jointure extérieure sur l'étudiant.rollno == marques.rollno ").montrer()

Sortir:

Conclusion

Dans cet article, nous avons discuté de quatre types de jointures SQL effectuées sur Pyspark DataFrame. Nous avons vu que la jointure gauche est similaire à la jointure extérieure gauche; La jointure de droite est similaire à la bonne jointure extérieure; La jointure complète est similaire à la jointure extérieure complète. Nous espérons que vous avez trouvé cet article utile. Découvrez d'autres articles sur les conseils pour plus de conseils et de tutoriels.