Pyspark - SUMDISTIND & COMPERDISTIND

Pyspark - SUMDISTIND & COMPERDISTIND
Dans Python, Pyspark est un module Spark utilisé pour fournir un type de traitement similaire comme Spark en utilisant DataFrame.

Pyspark - sumdistinct ()

SUMDISTIND () dans Pyspark renvoie la valeur totale (SUM) distincte d'une colonne particulière dans le dataframe. Il renverra la somme en considérant uniquement les valeurs uniques. Il ne prendra pas de valeurs en double pour former une somme.

Avant cela, nous devons créer Pyspark DataFrame pour la démonstration.

Exemple:

Nous allons créer un dataframe avec 5 lignes et 6 colonnes et l'afficher à l'aide de 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.69, «poids»: 67, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 16, '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.79, «poids»: 28, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
#display dataframe
df.montrer()

Sortir:

Dans le pyspark ci-dessus, nous avons observé que la colonne d'âge 16 s'est produite 2 fois, dans la colonne de hauteur 5.79 et 3.69 se sont produits deux fois, et en poids 67 et 28 se sont produits deux fois.

Ainsi, le sumdiStinct () considère ces valeurs en double comme une seule valeur et former la somme dans la colonne.

Utilisation de la méthode SELECT ()

Nous pouvons obtenir la valeur totale distincte de la colonne dans le dataframe à l'aide de la méthode SELECT (). En utilisant la méthode sumdistinct (), nous pouvons obtenir la valeur totale distincte de la colonne. Pour utiliser cette méthode, nous devons l'importer de Pyspark.SQL.Module de fonctions, et enfin, nous pouvons utiliser la méthode collection () pour obtenir la somme distincte de la colonne

Syntaxe:

df.select (sumDistinct ('Column_name'))

Où,

  1. df est l'entrée pyspark dataframe
  2. Column_name est la colonne pour obtenir la valeur de somme distincte

Si nous souhaitons renvoyer la valeur totale distincte de plusieurs colonnes, nous devons utiliser la méthode sumdistinct () dans la méthode SELECT () en spécifiant le nom de colonne séparé par une virgule.

Syntaxe:

df.select (sumDistinct ('Column_name'), sumDistinct ('Column_name'),… ., sumDistinct ('Column_name'))

Où,

  1. df est l'entrée pyspark dataframe
  2. Column_name est la colonne pour obtenir la valeur de somme distincte

Exemple 1: Seule colonne

Cet exemple obtiendra la valeur totale distincte de la colonne de hauteur dans le pyspark dataframe.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
Fonction #Import sumDistinct ()
de Pyspark.SQL.Fonctions Importer SUMDISTIND
#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.69, «poids»: 67, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 16, '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.79, «poids»: 28, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
#return la somme distincte de la colonne de hauteur
df.SELECT (sumDistinct ('hauteur')).collecter()

Sortir:

[Row (somme (hauteur distincte) = 12.27)]

L'exemple ci-dessus renvoie la valeur totale distincte (SUM) de la colonne de hauteur.

Exemple 2: plusieurs colonnes

Cet exemple obtiendra la valeur totale distincte des colonnes de hauteur, d'âge et de poids dans le pyspark dataframe.

# 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.69, «poids»: 67, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 16, '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.79, «poids»: 28, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
#Return la somme distincte des colonnes de hauteur, d'âge et de poids
df.SELECT (SUMDISTIND ('HEET.collecter()

Sortir:

[Row (somme (hauteur distincte) = 12.27, somme (âge distinct) = 85, somme (poids distinct) = 112)]]

L'exemple ci-dessus renvoie la valeur totale distincte (SUM) des colonnes de hauteur, d'âge et de poids.

Pyspark - countdistinct ()

CountDistinct () dans Pyspark renvoie le nombre distinct de valeurs (comptage) à partir d'une colonne particulière dans le dataframe. Il renverra le nombre en considérant uniquement les valeurs uniques. Il ne prendra pas de valeurs en double pour former un décompte.

Avant cela, nous devons créer Pyspark DataFrame pour la démonstration.

Exemple:

Nous allons créer un dataframe avec 5 lignes et 6 colonnes et l'afficher à l'aide de 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.69, «poids»: 67, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 16, '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.79, «poids»: 28, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
#display dataframe
df.montrer()

Sortir:

Dans le pyspark ci-dessus, nous avons observé que la colonne d'âge 16 s'est produite 2 fois, dans la colonne de hauteur 5.79 et 3.69 se sont produits deux fois, et en poids 67 et 28 se sont produits deux fois.

Ainsi, le countdistinct () considère ces valeurs en double comme des valeurs uniques et constitue le nombre dans la colonne.

Utilisation de la méthode SELECT ()

Nous pouvons obtenir le nombre distinct de la colonne dans le dataframe à l'aide de la méthode SELECT (). En utilisant la méthode CountDistinct (), nous pouvons obtenir un compte distinct de lignes de la colonne. Pour utiliser cette méthode, nous devons l'importer de Pyspark.SQL.Module fonctions, et enfin, nous pouvons utiliser la méthode Collect () pour obtenir le nombre distinct de la colonne

Syntaxe:

df.select (countDistinct ('Column_name'))

Où,

  1. df est l'entrée pyspark dataframe
  2. Column_name est la colonne pour obtenir le nombre distinct.

Si nous voulons retourner le nombre distinct de plusieurs colonnes, nous devons utiliser la méthode CountDistinct () dans la méthode SELECT () en spécifiant le nom de colonne séparé par une virgule.

Syntaxe:

df.SELECT (countdistinct ('Column_name'), countDistinct ('Column_name'),… ., CountDistinct ('Column_name'))

Où,

  1. df est l'entrée pyspark dataframe
  2. Column_name est la colonne pour obtenir le nombre distinct de lignes.

Exemple 1: colonne unique

Cet exemple obtiendra le nombre distinct de la colonne de hauteur dans le pyspark dataframe.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
Fonction #Import CountDistinct ()
de Pyspark.SQL.Fonctions Import CountDistinct
#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.69, «poids»: 67, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 16, '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.79, «poids»: 28, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
#return le nombre distinct de la colonne de hauteur
df.select (countdistinct ('hauteur')).collecter()

Sortir:

[Ligne (nombre (hauteur distincte) = 3)]

Dans l'exemple ci-dessus, le nombre distinct de la colonne de hauteur est retourné.

Exemple 2: plusieurs colonnes

Cet exemple obtiendra le nombre distinct des colonnes de hauteur, d'âge et de poids dans le Pyspark DataFrame.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
Fonction #Import CountDistinct ()
de Pyspark.SQL.Fonctions Import CountDistinct
#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.69, «poids»: 67, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 16, '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.79, «poids»: 28, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
#Return le nombre distinct des colonnes de hauteur, d'âge et de poids
df.SELECT (countdistinct («hauteur»), countdistinct («Âge»), countdistinct («poids»)).collecter()

Sortir:

[Row (nombre (hauteur distincte) = 3, comptage (âge distinct) = 4, comptage (poids distinct) = 3)]

L'exemple ci-dessus renvoie le nombre distinct des colonnes de hauteur, d'âge et de poids.

Conclusion:

Nous avons discuté de la façon d'obtenir la valeur de somme (totale) distincte à l'aide de sumdistinct () et le nombre distinct de lignes (count) en utilisant le countdistinct () de la méthode de données pyspark à l'aide de la méthode SELECT ().