Pyspark - collection_list et collect_set

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

Nous discuterons des fonctions Collect_List () et Collect_Set () dans Pyspark DataFrame.

Avant de passer à ces fonctions, nous créerons Pyspark DataFrame

Exemple:

Ici, nous allons créer Pyspark DataFrame avec 5 lignes et 6 colonnes.

# 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
étudiants1 = ['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': 2.79, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 9, 'height': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants1)
# Afficher DataFrame
df.montrer()

Sortir:

Pyspark - collection_list ()

La méthode collection_list () est utilisée pour obtenir les données des colonnes Pyspark DataFrame et renvoyer les valeurs au format de ligne. Il renverra toutes les valeurs avec des doublons. Mais nous devons importer cette méthode à partir de Pyspark.SQL.module de fonctions.

Nous pouvons utiliser cette méthode pour afficher les données collectées sous la forme d'une ligne.

Syntaxe:

trame de données.SELECT ("Collect_List (" Column "))

où:

  1. DataFrame est l'entrée Pyspark DataFrame
  2. la colonne est le nom de colonne où collection_list () est appliqué

Exemple 1:

Dans cet exemple, nous collectons des données à partir de la colonne d'adresse et affichons les valeurs avec la méthode Collect ().

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
Fonction #import collection_list
de Pyspark.SQL.Fonctions Import Collect_List
#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
étudiants1 = ['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 (étudiants1)
# collection_list sur l'adresse
df.select (collection_list ("adresse")).collecter()

Sortir:

[Row (collection_list (adresse) = ['guntur', 'hyd', 'patna', 'hyd', 'hyd'])]]

Exemple 2:

Dans cet exemple, nous collectons des données à partir des colonnes de taille et de poids et affichons les valeurs avec la méthode Collect ().

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
Fonction #import collection_list
de Pyspark.SQL.Fonctions Import Collect_List
#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
étudiants1 = ['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 (étudiants1)
# collection_list sur les colonnes de taille et de poids
df.select (collection_list ("height"), collection_list ("poids")).collecter()

Sortir:

[Ligne (collection_list (hauteur) = [5.79, 3.79, 2.79, 3.69, 5.59], collect_list (poids) = [67, 34, 17, 28, 54])]]

Pyspark - collection_set ()

La méthode collection_set () est utilisée pour obtenir les données des colonnes Pyspark DataFrame et renvoyer les valeurs au format de ligne. Il renverra toutes les valeurs sans doublons.

Nous pouvons utiliser cette méthode pour afficher les données collectées sous la forme d'une ligne. Mais nous devons importer cette méthode à partir de Pyspark.SQL.module de fonctions.

Syntaxe:

trame de données.SELECT («Collect_set (« colonne »))

où:

  1. DataFrame est l'entrée Pyspark DataFrame
  2. la colonne est le nom de colonne où collection_list () est appliqué

Exemple 1:

Dans cet exemple, nous collectons des données à partir de la colonne d'adresse et affichons les valeurs avec la méthode Collect ().

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
Fonction #import collection_set
de Pyspark.SQL.Fonctions Import Collect_set
#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
étudiants1 = ['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 (étudiants1)
# Collect_set sur l'adresse
df.select (collection_set ("adresse")).collecter()

Sortir:

[Row (collection_set (adresse) = ['hyd', 'guntur', 'patna'])]]

Exemple 2:

Dans cet exemple, nous collectons des données à partir des colonnes de taille et de poids et affichons les valeurs avec la méthode Collect ().

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
Fonction #import collection_set
de Pyspark.SQL.Fonctions Import Collect_set
#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
étudiants1 = ['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 (étudiants1)
# Collect_set sur les colonnes de hauteur et de poids
df.select (collect_set ("height"), collect_list ("poids")).collecter()

Sortir:

[Row (Collect_set (hauteur) = [5.59, 3.69, 2.79, 5.79, 3.79], collection_list (poids) = [67, 34, 17, 28, 54])]

Conclusion

Nous avons vu que des méthodes Collect_List () et Collect_Set () sont utilisées pour obtenir les données d'une colonne dans Pyspark DataFrame. D'après ces méthodes, nous avons observé que Collect_set () n'autorisera pas les doublons mais collection_list () autoriser les valeurs en double.