Fonction Pyspark - variance_stddev

Fonction Pyspark - variance_stddev
Après partitionner les lignes dans le Pyspark DataFrame, il est possible de renvoyer la variance et l'écart type dans chaque partition. En utilisant certaines fonctions agrégées sur une fenêtre de partition, il est possible de renvoyer la variance et l'écart type.

Tout d'abord, nous verrons comment partitionner le DataFrame dans Pyspark.

Cloison

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 a deux étapes pour partitionner les lignes dans un pyspark dataframe.

Pas:

  1. Créez un Pyspark DataFrame qui a des valeurs similaires dans au moins une colonne.
  2. Partitionne les données à l'aide de la méthode partition () disponible dans la fonction de fenêtre.

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 créons un pyspark dataframe qui a 5 colonnes - [«sujet_id», «nom», «âge», «technologie1», «technologie2»] avec 10 lignes.

Importer Pyspark
de Pyspark.SQL IMPORT SPARKSESSE
de Pyspark.SQL.Fonctions Import *
Spark_App = Sparkcession.constructeur.nom de l'application('_').getorCreate ()
étudiants = [(4, «sravan», 23, «php», «test»),
(4, «sravan», 23, «php», «test»),
(46, «Mounika», 22, '.Net ',' html '),
(4, «Deepika», 21, «Oracle», «html»),
(46, «Mounika», 22, «Oracle», «Testing»),
(12, «Chandrika», 22, «Hadoop», «C #»),
(12, «Chandrika», 22, «Oracle», «Testing»),
(4, «Sravan», 23, «Oracle», «C #»),
(4, «Deepika», 21, «Php», «C #»),
(46, «Mounika», 22, '.Net ',' test ')
]]
dataframe_obj = spark_app.CreatedataFrame (étudiants, [«sujet_id», «nom», «âge», «technologie1», «technologie2»])
Imprimer ("---------- réelle DataFrame ----------")
dataframe_obj.montrer()

Sortir:

Fonction de fenêtre Pyspark Variance ()

La variance () dans la fonction de fenêtre est utilisée pour renvoyer la variance dans chaque partition. Il peut être possible de retourner la variance après le partitionnement du dataframe.

Syntaxe:

dataframe_obj.withColumn ("variance", variance (col ("colonne")).sur (partition))

Paramètre:

variance (col ("colonne"))

Ici, la fonction variance () prend le nom de la colonne comme paramètre. Il renvoie la variance dans cette colonne dans chaque partition.

Nous ajoutons le résultat dans une colonne nommée variance à l'aide de la fonction WithColumn ().

Exemple 1:

Maintenant, nous avons un dataframe (créé précédemment). Letons-le en fonction de la colonne Technology1 et obtenons la variance dans la colonne Subject_id dans chaque partition.

# Importer la fonction de fenêtre
de Pyspark.SQL.Fenêtre d'importation de fenêtre
# importer la variance et le col de Pyspark.SQL.les fonctions
de Pyspark.SQL.fonctions la variance d'importation, col
#Partition le dataframe en fonction des valeurs de la colonne Technology1
partition = fenêtre.partitionby ("Technology1")
print ("---------- partitionné DataFrame ----------")
#return la variance dans la colonne sujette_id pour chaque partition
dataframe_obj.withColumn ("variance", variance (col ("sujet_id"))).sur (partition)).montrer()

Sortir:

Explication:

Le nombre total de partitions est 4.

Partition 1:

Le .Le filet s'est produit deux fois dans la première partition. La variance de la colonne Subject_id est 0.0.

Partition 2:

Hadoop s'est produit une fois dans la deuxième partition. Donc, la variance est nul.

Partition 3:

Oracle s'est produit quatre fois dans la troisième partition.

La variance de la colonne Subject_ID est 401.0.

Partition 4:

PHP s'est produit trois fois dans la quatrième partition.

La variance de la colonne Subject_id est 0.0.

Exemple 2:

Maintenant, nous avons un dataframe (créé précédemment). Levons-le en fonction de la colonne Technology1 et obtenons la variance de la colonne d'âge dans chaque partition.

# Importer la fonction de fenêtre
de Pyspark.SQL.Fenêtre d'importation de fenêtre
# importer la variance et le col de Pyspark.SQL.les fonctions
de Pyspark.SQL.fonctions la variance d'importation, col
#Partition le dataframe en fonction des valeurs de la colonne Technology1
partition = fenêtre.partitionby ("Technology1")
print ("---------- partitionné DataFrame ----------")
#return la variance de la colonne d'âge pour chaque partition
dataframe_obj.WithColumn ("variance", variance (col ("âge")).sur (partition)).montrer()

Sortir:

Explication:

Le nombre total de partitions est 4.

Partition 1:

Le .Le filet s'est produit deux fois dans la première partition. La variance de la colonne d'âge est 0.0.

Partition 2:

Hadoop s'est produit une fois dans la deuxième partition. Donc, la variance est nul.

Partition 3:

Oracle s'est produit quatre fois dans la troisième partition.

La variance de la colonne d'âge est 0.666.

Partition 4:

PHP s'est produit trois fois dans la quatrième partition.

La variance de la colonne d'âge est 1.333.

Fonction de fenêtre pyspark stddev ()

La fonction stddev () dans la fenêtre est utilisée pour renvoyer l'écart type dans chaque partition. Il peut être possible de retourner l'écart-type après partitionner le dataframe.

Syntaxe:

dataframe_obj.withColumn ("écart-type", stddev (col ("colonne")).sur (partition))

Paramètre:

stddev (col ("colonne"))

Ici, le stddev () prend le nom de la colonne comme paramètre. Il renvoie l'écart type dans cette colonne dans chaque partition.

Nous ajoutons le résultat dans une colonne nommée écart-type à l'aide de la fonction withColumn ().

Exemple 1:

Maintenant, nous avons un dataframe (créé précédemment). Letons-le en fonction de la colonne Technology1 et obtenons l'écart-type dans la colonne Subject_id dans chaque partition.

# Importer la fonction de fenêtre
de Pyspark.SQL.Fenêtre d'importation de fenêtre
#IMPORT LE STDDEV ET COL DE PYSPARK.SQL.les fonctions
de Pyspark.SQL.fonctions import stddev, col
#Partition le dataframe en fonction des valeurs de la colonne Technology1
partition = fenêtre.partitionby ("Technology1")
print ("---------- partitionné DataFrame ----------")
#Return l'écart Satndard dans la colonne Subject_id pour chaque partition
dataframe_obj.withColumn ("écart-type", stddev (col ("suject_id")).sur (partition)).montrer()

Sortir:

Explication:

Le nombre total de partitions est 4.

Partition 1:

Le .Le filet s'est produit deux fois dans la première partition. L'écart type de la colonne Subject_id est 0.0.

Partition 2:

Hadoop s'est produit une fois dans la deuxième partition. Donc, l'écart type est nul.

Partition 3:

Oracle s'est produit quatre fois dans la troisième partition.

L'écart type de la colonne Subject_id est de 20.024984.

Partition 4:

PHP s'est produit trois fois dans la quatrième partition.

L'écart type de la colonne Subject_id est 0.0.

Exemple 2:

Maintenant, nous avons un dataframe (créé précédemment). Letons-le en fonction de la colonne Technology1 et obtenons l'écart-type dans la colonne d'âge dans chaque partition.

# Importer la fonction de fenêtre
de Pyspark.SQL.Fenêtre d'importation de fenêtre
#IMPORT LE STDDEV ET COL DE PYSPARK.SQL.les fonctions
de Pyspark.SQL.fonctions import stddev, col
#Partition le dataframe en fonction des valeurs de la colonne Technology1
partition = fenêtre.partitionby ("Technology1")
print ("---------- partitionné DataFrame ----------")
#return la colonne de déviation Satndard dans l'âge pour chaque partition
dataframe_obj.WithColumn ("écart-type", STDDEV (Col ("Age")).sur (partition)).montrer()

Sortir:

Explication:

Le nombre total de partitions est 4.

Partition 1:

Le .Le filet s'est produit deux fois dans la première partition. L'écart type de la colonne d'âge est 0.0.

Partition 2:

Hadoop s'est produit une fois dans la deuxième partition. Donc, l'écart type est nul.

Partition 3:

Oracle s'est produit quatre fois dans la troisième partition.

L'écart type de la colonne d'âge est 0.8164.

Partition 4:

PHP s'est produit trois fois dans la quatrième partition.

L'écart type de la colonne d'âge est 1.1547.

Conclusion

Dans ce didacticiel de partitionnement Pyspark, nous avons appris à renvoyer la variance dans chaque fenêtre partitionnée en utilisant la fonction de variance () et l'écart type dans chaque fenêtre partitionnée à l'aide de la fonction stddev (). Nous avons ajouté le résultat au DataFrame existant en tant que nouvelle colonne. Assurez-vous d'importer la variance et le stddev à partir du pyspark.SQL.module de fonctions.