L'avantage de la partition est d'atteindre la cohérence des données et le regroupement. Après avoir effectué la partition, nous pouvons fournir les nombres à la ligne dans chaque partition en utilisant le row_number () fonction.
Il est possible de partitionner les lignes dans un dataframe en fonction des valeurs d'une colonne particulière. Toutes les valeurs similaires sont définies sur chaque partition. Supposons qu'il existe 3 types de valeurs similaires, alors chaque type est une partition. Donc, il y aura trois partitions.
Row_number () Fonction de fenêtre
Le ROW_NUMBER dans Pyspark est une fonction de fenêtre qui est utilisée pour définir les nombres à partir de 1 dans chaque fenêtre partitionnée.
L'essentiel est que le row_number () n'est pas disponible directement. Nous devons l'importer à partir du pyspark.SQL.les fonctions module.
Module Syntaxe à Importer:
de Pyspark.SQL.fonctions importation row_numberSinon, nous pouvons également faire comme cela pour importer toutes les méthodes de ce module.
de Pyspark.SQL.Fonctions Import *Nous devons suivre les étapes suivantes pour effectuer la partition et appliquer le ROW_NUMBER sur les données partitionnées.
Pas:
Syntaxe:
partition = fenêtre.partitionby («colonne»).OrderBy («colonne»)Nous pouvons commander les données partitionnées avec la colonne partitionnée ou toute autre colonne.
Syntaxe:
dataframe_obj.withColumn ("name", row_number ().sur (partition))Ici, le nom spécifie le nom de la ligne et le dataframe_obj est notre pyspark dataframe.
Implémentons le code.
Exemple 1:
Ici, nous créons un pyspark dataframe qui a 5 colonnes - [«sujet_id», «nom», «Âge», «Technology1», «Technology2»] avec 10 lignes et partitionner les lignes en fonction de la Technologie1 Utilisation de la fonction de fenêtre après avoir obtenu les numéros de ligne pour les partitions et les ajouter dans la colonne - Rang pour la technologie1.
Importer PysparkSortir:
Explication:
La première sortie représente les données réelles présentes dans le dataframe. Dans la deuxième sortie, la partition est effectuée sur la base du Technologie1 colonne.
Le nombre total de partitions est 4.
Partition 1:
Le .Le filet s'est produit deux fois dans la première partition. Donc, les Row_numbers sont 1 et 2.
Partition 2:
Hadoop s'est produit une fois dans la deuxième partition. Donc, le row_number est 1.
Partition 3:
Oracle s'est produit cinq fois dans la troisième partition. Ainsi, les Row_numbers sont 1, 2, 3, 4 et 5.
Partition 4:
PHP s'est produit deux fois dans la cinquième partition. Donc, les Row_numbers sont 1 et 2.
Exemple 2:
Pour le même dataframe, nous partitions les lignes en fonction Technologie2 Utilisation de la fonction de fenêtre après avoir obtenu les numéros de ligne pour les partitions et les ajouter dans la colonne - Rang pour la technologie2.
Importer PysparkSortir:
Explication:
La première sortie représente les données réelles présentes dans le dataframe. Dans la deuxième sortie, la partition est effectuée sur la base du Technologie2 colonne.
Le nombre total de partitions est 3.
Partition 1:
C # s'est produit trois fois dans la première partition. Ainsi, les Row_numbers sont 1, 2 et 3.
Partition 2:
HTML s'est produit deux fois dans la deuxième partition. Donc, les Row_numbers sont 1 et 2.
Partition 3:
Les tests se sont produits cinq fois dans la troisième partition. Ainsi, les Row_numbers sont 1, 2, 3, 4 et 5.
Conclusion
Nous avons discuté de la façon de partitionner les lignes dans le pyspark dataframe et d'obtenir les numéros de ligne dans chaque partition à l'aide de la fonction de fenêtre Row_number (). Le ROW_NUMBER dans Pyspark est une fonction de fenêtre qui est utilisée pour définir les nombres à partir de 1 dans chaque fenêtre partitionnée. Assurez-vous d'utiliser cette commande tout en utilisant cette fonction - de Pyspark.SQL.fonctions importation row_number.