Pyspark partitionne un cadre de données
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. Il y aura deux étapes pour partitionner les lignes dans un pyspark dataframe.
Pas
Syntaxe
partition = fenêtre.partitionby («colonne»)Nous pouvons commander les données partitionnées avec la colonne partitionnée ou toute autre colonne. Créons le dataframe.
Exemple
Ici, nous allons créer un pyspark dataframe qui a 5 colonnes: [«sujet_id», «nom», «âge», «Technology1», «Technology2»] avec 10 lignes.
Sortir:
Fonction de fenêtre pyspark sum ()
La sum () dans la fonction de fenêtre est utilisée pour renvoyer la somme totale des valeurs dans chaque partition. Il est donc possible de retourner une somme après le partitionnement du dataframe.
Syntaxe
dataframe_obj.withColumn ("sum", sum (col ("colonne")).sur (partition))Paramètre:
sum (col ("colonne"))Ici le somme() La fonction prend le nom de la colonne comme paramètre. Donc, il renvoie la somme des valeurs dans cette colonne dans chaque partition. Nous ajoutons le résultat dans une colonne de somme en utilisant le withColumn () fonction.
Exemple 1
Maintenant, nous avons un dataframe (créé ci-dessus). Levons-le en fonction de la colonne Technology1 et obtenons la somme totale de toutes les valeurs dans la colonne Subject_id dans chaque partition.
Sortir:
Explication
Partitions totales: 4
Partition 1:
.Le filet s'est produit deux fois dans la première partition. Et la somme des valeurs sujets_id est de 46 + 46 = 92.
Partition 2:
Hadoop s'est produit une fois dans la deuxième partition. Donc, la somme est 12.
Partition 3:
Oracle s'est produit quatre fois dans la troisième partition.
Et la somme des valeurs sujets est 4 + 46 + 12 + 4 = 66.
Partition 4:
PHP s'est produit trois fois dans la quatrième partition.
Et la somme des valeurs sujets_id est 4 + 4 + 4 = 12.
Exemple 2
Maintenant, nous avons un dataframe (créé ci-dessus). Letons-le en fonction de la colonne Technology1 et obtenons la somme totale de toutes les valeurs dans la colonne d'âge dans chaque partition.
Sortir:
Explication
Partitions totales: 4
Partition 1:
.Le filet s'est produit deux fois dans la première partition. Et la somme des valeurs d'âge est de 22 + 22 = 92.
Partition 2:
Hadoop s'est produit une fois dans la deuxième partition. Donc, la somme est 22.
Partition 3:
Oracle s'est produit quatre fois dans la troisième partition.
Et la somme des valeurs d'âge est de 21 + 22 + 22 + 23 = 88.
Partition 4:
PHP s'est produit trois fois dans la quatrième partition.
Et la somme des valeurs d'âge est de 23 + 23 + 21 = 67.
Fonction de fenêtre Pyspark AVG ()
La fonction avg () dans la fenêtre est utilisée pour renvoyer la moyenne totale des valeurs dans chaque partition. Il est donc possible de retourner la moyenne après le partitionnement du dataframe.
Syntaxe
dataframe_obj.WithColumn ("moyen", avg (col ("colonne")).sur (partition))Paramètre:
avg (col ("colonne"))Ici, avg () prend le nom de la colonne comme paramètre. Donc, il renvoie la moyenne des valeurs dans cette colonne dans chaque partition. Nous ajoutons le résultat dans la colonne moyenne en utilisant le withColumn () fonction.
Exemple 1
Maintenant, nous avons un dataframe (créé ci-dessus). Levons-le en fonction de la colonne Technology1 et obtenons la moyenne totale de toutes les valeurs dans la colonne Subject_id dans chaque partition.
Sortir:
Explication
Partitions totales: 4
Partition 1:
.Le filet s'est produit deux fois dans la première partition. Et la moyenne des valeurs sujets_id est (46 + 46) / 2 = 46.0.
Partition 2:
Hadoop s'est produit une fois dans la deuxième partition. Donc, la moyenne est de 12.0.
Partition 3:
Oracle s'est produit quatre fois dans la troisième partition.
Et la moyenne des valeurs sujets_id est (4 + 46 + 12 + 4) / 4 = 16.5.
Partition 4:
PHP s'est produit trois fois dans la quatrième partition.
Et la moyenne des valeurs sujets_id est (4 + 4 + 4) / 3 = 4.0.
Exemple 2
Maintenant, nous avons un dataframe (créé ci-dessus). Letons-le en fonction de la colonne Technology1 et obtenons la moyenne totale de toutes les valeurs dans la colonne d'âge dans chaque partition.
Sortir:
Explication
Partitions totales: 4
Partition 1:
.Le filet s'est produit deux fois dans la première partition. Et la valeur d'âge moyenne est (22 + 22) / 2 = 22.0.
Partition 2:
Hadoop s'est produit une fois dans la deuxième partition. Donc, la moyenne est de 22.0.
Partition 3:
Oracle s'est produit quatre fois dans la troisième partition.
Et l'âge moyen est (21 + 22 + 22 + 23) / 4 = 22.0.
Partition 4:
PHP s'est produit trois fois dans la quatrième partition.
Et la valeur d'âge moyenne est (23 + 23 + 21) / 3 = 22.333.
Conclusion
Dans ce didacticiel de partitionnement Pyspark, nous avons vu comment renvoyer la somme des valeurs dans chaque fenêtre partitionnée en utilisant le somme() fonction et les valeurs moyennes dans chaque fenêtre partitionnée à l'aide de la fonction avg (). Nous avons ajouté le résultat au DataFrame existant en tant que nouvelle colonne. Il est également possible d'obtenir la moyenne similaire à avg () fonction en utilisant moyenne(). Les choses que cela signifie pyspark.SQL.les fonctions module et assurez-vous simplement que vous devez importer la somme et la moyenne du même module.