Le rang commence à partir de 1, et si des valeurs sont les mêmes en deux lignes ou plus, le même rang sera attribué.
Ici, les valeurs proviennent de la colonne où nous avons spécifié la colonne à l'intérieur de l'ordre (). Ainsi, sur la base des valeurs de cette colonne, dense_rank () vérifie les valeurs et attribue le numéro de rang.
L'essentiel est que dense_rank () n'est pas disponible directement. Nous devons l'importer à partir du pyspark.SQL.les fonctions module.
Dans Pyspark, il est possible de partitionner les lignes dans le dataframe à l'aide de la fonction de fenêtre. Il est disponible dans le pyspark.SQL.fenêtre module.
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 définir les rangs sur les lignes de chaque partition à l'aide de la fonction dense_rank ().
Il est possible de partitionner les lignes dans un dataframe en fonction des valeurs d'une colonne particulière. Donc, toutes les valeurs similaires sont définies sur chaque partition.
Nous devons suivre les étapes suivantes de la partition et appliquer dense_rank sur les données partitionnées:
Pas:
Implémentons le code.
Exemple 1
Ici, nous allons créer un pyspark dataframe qui a 5 colonnes: [«sujet_id», «nom», «âge», «Technology1», «Technology2»] avec 10 lignes et partitionner les lignes en fonction de Technologie1 en utilisant la fonction de fenêtre.
Enfin, nous donnerons des rangs aux lignes dans toutes les partitions en ajoutant une nouvelle colonne nommée «Rang dense".
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.
Partitions totales: - 4
Partition 1:
.Le filet s'est produit deux fois dans la première partition. Les valeurs dans la colonne subs_id sont les mêmes. Par conséquent, la fonction dense_rank () renvoie le même rang-1 pour les deux .Valeurs nettes.
Partition 2:
Hadoop s'est produit une fois dans la deuxième partition. Donc, le rang est 1.
Partition 3:
Oracle s'est produit quatre fois dans la troisième partition.
Pour les deux premiers oracle, les valeurs sujets_id sont les mêmes, donc pour les deux, le Rank-1 est attribué.
Pour le troisième oracle, le rang est 2.
Pour le dernier oracle, le rang est de 3.
Partition 4:
PHP s'est produit trois fois dans la quatrième partition, et les valeurs dans la colonne Subject_ID sont les mêmes pour tous. Par conséquent, le rang est 1 pour tous les php.
Exemple 2
Ici, en utilisant la fonction de fenêtre, nous partirons les lignes en fonction Technologie2.
Enfin, nous classerons les lignes en fonction de la colonne Subject_ID dans toutes les partitions en ajoutant une nouvelle colonne nommée "Rang dense".
(Si vous n'avez pas créé le Pyspark DataFrame, créez-le en utilisant le premier exemple.)
# Importer la fonction de fenêtreSortir:
Explication
La 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 et commandée sur la base de la colonne Subject_ID.
Partitions totales: - 3
Partition 1:
C # s'est produit trois fois dans la première partition. De plus, les deux premières valeurs dans la colonne Subject_ID sont les mêmes. Par conséquent, la fonction dense_rank () renvoie le même rang-1 pour les deux premiers C #, et pour le troisième C #, le rang est 2.
Partition 2:
HTML s'est produit deux fois dans la deuxième partition, et les valeurs Subject_id sont différentes pour ces deux. Ainsi, le rang-1 est attribué pour le premier HTML, et le rang 2 est attribué pour le second.
Partition 3:
Les tests se sont produits cinq fois dans la troisième partition.
Pour les deux premiers tests, les valeurs Subject_id sont les mêmes, donc pour les deux, le Rank-1 est attribué.
Pour le troisième test, le rang est de 2.
Pour les derniers tests, le rang était de 3.
Exemple 3
Ici, en utilisant la fonction de fenêtre, nous partirons les lignes en fonction Technologie2.
Enfin, nous classerons les lignes en fonction de la colonne d'âge dans toutes les partitions en ajoutant une nouvelle colonne nommée «Rang dense".
(Si vous n'avez pas créé le Pyspark DataFrame, créez-le en utilisant le premier exemple.)
# Importer la fonction de fenêtreSortir:
Explication
La 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 de la colonne Technology2 et commandée en fonction de la colonne d'âge.
Partitions totales: - 3
Partition 1:
C # s'est produit trois fois dans la première partition. Toutes les valeurs de la colonne d'âge sont différentes. Par conséquent, la fonction dense_rank () renvoie les rangs 1,2 et 3 pour trois valeurs C #.
Partition 2:
HTML s'est produit deux fois dans la première partition. Toutes les valeurs de la colonne d'âge sont différentes. Par conséquent, la fonction dense_rank () renvoie les rangs 1 et 2 pour deux valeurs HTML.
Partition 3:
Les tests se sont produits cinq fois dans la troisième partition.
Pour les trois premières valeurs de test, les valeurs d'âge sont les mêmes. Donc, pour trois, le rang-1 est affecté.
Les valeurs d'âge pour les quatrième et cinquième tests sont les mêmes, donc le rang 2 est donné aux deux.
Conclusion
Nous avons discuté de partitionner les lignes dans le pyspark dataframe et de définir le rang dans chaque partition à l'aide de la fonction de fenêtre dense_rank (). dense_rank dans Pyspark est une fonction de fenêtre qui définit les rangs sur les lignes de chaque partition. Le rang commence à partir de 1, et si des valeurs sont les mêmes en deux lignes ou plus, le même rang sera attribué.