Pyspark - Orderby

Pyspark - Orderby

Dans Python, Pyspark est un module Spark utilisé pour fournir un type de traitement similaire comme Spark en utilisant DataFrame. Dans Pyspark, OrderBy () est utilisé pour organiser les lignes dans l'ordre de tri / ascendant 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 d'OrderBy ()

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

Syntaxe:

trame de données.OrderBy ("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 OrderBy () et afficher la méthode 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.ordonnance ("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 d'OrderBy () avec la fonction col

Ici, nous utilisons la fonction OrderBy () pour trier le Pyspark DataFrame en fonction des colonnes. Nous devons spécifier les noms de colonne à l'intérieur de la fonction OrderBy () 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.OrderBy (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 OrderBy () et afficher la méthode 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.OrderBy (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 d'OrderBy () avec l'étiquette DataFrame

Ici, nous utilisons la fonction OrderBy () pour trier le Pyspark DataFrame en fonction des colonnes. Nous devons spécifier les noms / étiquettes de colonne à l'intérieur de la fonction OrderBy () via le nom / étiquette de la colonne DataFrame.

Syntaxe:

trame de données.commander par (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 OrderBy () et afficher la méthode 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.OrderBy (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 d'OrderBy () avec l'index DataFrame

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

Syntaxe:

trame de données.OrderBy (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 OrderBy () et afficher la méthode 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.OrderBy (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 la fonction OrderBy () à 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.