Pyspark - trier

Pyspark - trier

Dans Python, Pyspark est un module Spark utilisé pour fournir un type de traitement similaire comme Spark en utilisant DataFrame. Dans Pyspark, Sort () est utilisé pour organiser les lignes de tri ou d'ordre croissant dans le DataFrame. Il renverra le nouveau DataFrame en organisant les lignes dans le dataframe existant. Créons un pyspark dataframe.

Exemple:

Dans cet exemple, nous allons créer le Pyspark DataFrame avec 5 lignes et 6 colonnes et afficher 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)
#display dataframe
df.montrer()

Sortir:

Méthode - 1: Utilisation de tri ()

Ici, nous utilisons la fonction tri () pour trier le Pyspark DataFrame en fonction des colonnes. Il faudra une ou plusieurs colonnes.

Syntaxe:

trame de données.Soi ("Column_name",…, "Column_name")

Ici,

  1. DataFrame est l'entrée Pyspark DataFrame.
  2. Column_name est la colonne où le tri est appliqué.

Exemple:

Dans cet exemple, nous allons trier le dataframe en fonction des colonnes d'adresse et d'âge avec la fonction tri () et afficher la méthode de données de données triée à l'aide de la méthode Collect ().

# 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)
# trier le dataframe en fonction des colonnes d'adresse et d'âge
# et afficher le framage de données trié
df.tri ("adresse", "âge").collecter()

Sortir:

[Row (adresse = 'guntur', âge = 23, hauteur = 5.79, name = 'sravan', rollno = '001', poids = 67),
Ligne (adresse = 'hyd', âge = 9, hauteur = 3.69, name = 'rohith', rollno = '004', poids = 28),
Ligne (adresse = 'hyd', âge = 16, hauteur = 3.79, name = 'ojaswi', rollno = '002', poids = 34),
Ligne (adresse = 'hyd', âge = 37, hauteur = 5.59, name = 'sridevi', rollno = '005', poids = 54),
Ligne (adresse = 'patna', âge = 7, hauteur = 2.79, name = 'gnanesh chowdary', rollno = '003', poids = 17)]

Méthode - 2: Utilisation de tri () avec la fonction col

Ici, nous utilisons la fonction tri () pour trier le Pyspark DataFrame en fonction des colonnes. Nous devons spécifier les noms / s de colonnes à l'intérieur de la fonction tri () via la fonction col. Nous devons importer cette fonction à partir de pyspark.SQL.module de fonctions. Ceci est utilisé pour lire une colonne à partir du pyspark dataframe.

Syntaxe:

trame de données.Soi (col ("Column_name"),…, col ("Column_name"))

Ici,

  1. DataFrame est l'entrée Pyspark DataFrame.
  2. Column_name est la colonne où le tri est appliqué via la fonction col.

Exemple:

Dans cet exemple, nous allons trier le dataframe en fonction des colonnes d'adresse et d'âge avec la fonction tri () et afficher la méthode de données de données triée à l'aide de la méthode Collect ().

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#IMPORT LA FONCTION COL
de Pyspark.SQL.Fonctions Import Col
#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)
# trier le dataframe en fonction des colonnes d'adresse et d'âge
# et afficher le framage de données trié
df.Toi (col ("adresse"), col ("âge")).collecter()

Sortir:

[Row (adresse = 'guntur', âge = 23, hauteur = 5.79, name = 'sravan', rollno = '001', poids = 67),
Ligne (adresse = 'hyd', âge = 9, hauteur = 3.69, name = 'rohith', rollno = '004', poids = 28),
Ligne (adresse = 'hyd', âge = 16, hauteur = 3.79, name = 'ojaswi', rollno = '002', poids = 34),
Ligne (adresse = 'hyd', âge = 37, hauteur = 5.59, name = 'sridevi', rollno = '005', poids = 54),
Ligne (adresse = 'patna', âge = 7, hauteur = 2.79, name = 'gnanesh chowdary', rollno = '003', poids = 17)]

Méthode - 3: Utilisation de tri () avec l'étiquette DataFrame

Ici, nous utilisons la fonction tri () pour trier le Pyspark DataFrame en fonction des colonnes. Nous devons spécifier les noms / étiquettes de colonne dans la fonction SORT () via le nom / étiquette de la colonne DataFrame.

Syntaxe:

trame de données.trier (dataframe.Column_name,…, DataFrame.nom de colonne)

Ici,

  1. DataFrame est l'entrée Pyspark DataFrame.
  2. Column_name est la colonne où le tri est appliqué.

Exemple:

Dans cet exemple, nous allons trier le dataframe en fonction des colonnes d'adresse et d'âge avec la fonction tri () et afficher la méthode de données de données triée à l'aide de la méthode Collect ().

# 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)
# trier le dataframe en fonction des colonnes d'adresse et d'âge
# et afficher le framage de données trié
df.trier (df.adresse, df.âge).collecter()

Sortir:

[Row (adresse = 'guntur', âge = 23, hauteur = 5.79, name = 'sravan', rollno = '001', poids = 67),
Ligne (adresse = 'hyd', âge = 9, hauteur = 3.69, name = 'rohith', rollno = '004', poids = 28),
Ligne (adresse = 'hyd', âge = 16, hauteur = 3.79, name = 'ojaswi', rollno = '002', poids = 34),
Ligne (adresse = 'hyd', âge = 37, hauteur = 5.59, name = 'sridevi', rollno = '005', poids = 54),
Ligne (adresse = 'patna', âge = 7, hauteur = 2.79, name = 'gnanesh chowdary', rollno = '003', poids = 17)]

Méthode - 4: Utilisation de Sort () avec l'index de DataFrame

Ici, nous utilisons la fonction tri () pour trier le Pyspark DataFrame en fonction des colonnes. Nous devons spécifier l'index / indices de colonne dans la fonction SORT () via l'index / position de la colonne DataFrame. Dans DataFrame, l'indexation commence par «0».

Syntaxe:

trame de données.Trie (DataFrame [Column_Index],…, DataFrame [Column_index])

Ici,

  1. DataFrame est l'entrée Pyspark DataFrame.
  2. Column_index est la position de colonne où le tri est appliqué.

Exemple:

Dans cet exemple, nous allons trier le dataframe en fonction des colonnes d'adresse et d'âge avec la fonction tri () et afficher la méthode de données de données triée à l'aide de la méthode Collect ().

# 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)
# trier le dataframe en fonction des colonnes d'adresse et d'âge
# et afficher le framage de données trié
df.Trier (df [0], df [1]).collecter()

Sortir:

[Row (adresse = 'guntur', âge = 23, hauteur = 5.79, name = 'sravan', rollno = '001', poids = 67),
Ligne (adresse = 'hyd', âge = 9, hauteur = 3.69, name = 'rohith', rollno = '004', poids = 28),
Ligne (adresse = 'hyd', âge = 16, hauteur = 3.79, name = 'ojaswi', rollno = '002', poids = 34),
Ligne (adresse = 'hyd', âge = 37, hauteur = 5.59, name = 'sridevi', rollno = '005', poids = 54),
Ligne (adresse = 'patna', âge = 7, hauteur = 2.79, name = 'gnanesh chowdary', rollno = '003', poids = 17)]

Conclusion

Dans cet article, nous discutons de la façon d'utiliser une fonction tri () à l'aide de quatre scénarios sur le Pyspark DataFrame dans Python. Enfin, nous sommes arrivés à un point où nous pouvons trier les données dans le Pyspark DataFrame en fonction des colonnes présentes dans le dataframe.