Pyspark - SumDistinct & CountDistint

Pyspark - SumDistinct & CountDistint
In Python, Pyspark è un modulo Spark utilizzato per fornire un tipo di elaborazione simile come Spark utilizzando DataFrame.

PysPark - SumDistinct ()

sumdistinct () in pyspark restituisce il valore totale (somma) distinto da una particolare colonna nel frame dati. Restituirà la somma considerando solo valori univoci. Non ci vorranno valori duplicati per formare una somma.

Prima di allora, dobbiamo creare il telaio di dati pyspark per la dimostrazione.

Esempio:

Creeremo un frame dati con 5 righe e 6 colonne e lo mostreremo usando il metodo show ().

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Students = ['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.69, 'peso': 67, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 16, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.79, 'peso': 28, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#Display DataFrame
df.spettacolo()

Produzione:

Nell'inframe dati Pyspark sopra, abbiamo osservato che nella colonna di età 16 si è verificata 2 volte, in altezza colonna 5.79 e 3.69 si sono verificati due volte e nella colonna di peso 67 e 28 si sono verificati due volte.

Quindi SumDistinct () considera questi valori duplicati come un singolo valore e forma la somma all'interno della colonna.

Utilizzo del metodo Select ()

Possiamo ottenere il valore totale distinto dalla colonna nel frame dati utilizzando il metodo Select (). Usando il metodo SumDistinct (), possiamo ottenere il valore totale distinto dalla colonna. Per usare questo metodo, dobbiamo importarlo da Pyspark.SQL.Modulo funzioni e, infine, possiamo usare il metodo collect () per ottenere la somma distinta dalla colonna

Sintassi:

df.Select (sumDistinct ('column_name'))

Dove,

  1. DF è il frame dati pyspark input
  2. Column_name è la colonna per ottenere il valore di somma distinto

Se vogliamo restituire il valore totale distinto da più colonne, dobbiamo usare il metodo SumDistint () all'interno del metodo Select () specificando il nome della colonna separato da una virgola.

Sintassi:

df.Seleziona (sumDistinct ('column_name'), sumDistinct ('column_name'), .. ., suMDistinct ('column_name'))

Dove,

  1. DF è il frame dati pyspark input
  2. Column_name è la colonna per ottenere il valore di somma distinto

Esempio 1: Colonna singola

Questo esempio otterrà il valore totale distinto dalla colonna di altezza nel frame dati pyspark.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#import sumDistinct () funzione
da pyspark.SQL.Funzioni Importa sumdistint
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Students = ['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.69, 'peso': 67, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 16, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.79, 'peso': 28, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#TRIVUT la somma distinta dalla colonna di altezza
df.Seleziona (sumdistinct ('altezza')).raccogliere()

Produzione:

[Riga (somma (altezza distinta) = 12.27)]

L'esempio sopra restituisce il valore totale distinto (somma) dalla colonna di altezza.

Esempio 2: più colonne

Questo esempio otterrà il valore totale distinto dall'altezza, dall'età e dalle colonne di peso nel frame dati Pyspark.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Students = ['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.69, 'peso': 67, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 16, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.79, 'peso': 28, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#TRIMINA LA SUM distinta dall'altezza, dall'età e dalle colonne di peso
df.Select (sumDistinct ("altezza"), sumdistinct ("età"), sumdistinct ("peso")).raccogliere()

Produzione:

[Riga (somma (altezza distinta) = 12.27, somma (età distinta) = 85, somma (peso distinto) = 112)]

L'esempio sopra restituisce il valore totale distinto (somma) dalle colonne di altezza, età e peso.

PysPark - CountDistinct ()

CountDistinct () in pyspark restituisce il numero distinto di valori (conta) da una colonna particolare nel frame dati. Restituirà il conteggio considerando solo valori univoci. Non ci vorranno valori duplicati per formare un conteggio.

Prima di allora, dobbiamo creare il telaio di dati pyspark per la dimostrazione.

Esempio:

Creeremo un frame dati con 5 righe e 6 colonne e lo mostreremo usando il metodo show ().

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Students = ['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.69, 'peso': 67, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 16, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.79, 'peso': 28, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#Display DataFrame
df.spettacolo()

Produzione:

Nell'inframe dati Pyspark sopra, abbiamo osservato che nella colonna di età 16 si è verificata 2 volte, in altezza colonna 5.79 e 3.69 si sono verificati due volte e nella colonna di peso 67 e 28 si sono verificati due volte.

Quindi CountDistinct () considera questi valori duplicati come valori singoli e forma il conteggio nella colonna.

Utilizzo del metodo Select ()

Possiamo ottenere il conteggio distinto dalla colonna nel frame dati utilizzando il metodo Select (). Usando il metodo CountDistinct (), possiamo ottenere un conteggio distinto di righe dalla colonna. Per usare questo metodo, dobbiamo importarlo da Pyspark.SQL.Modulo Funzioni e, infine, possiamo usare il metodo Collect () per ottenere il conteggio distinto dalla colonna

Sintassi:

df.Select (CountDistinct ('column_name'))

Dove,

  1. DF è il frame dati pyspark input
  2. column_name è la colonna per ottenere il conteggio distinto.

Se vogliamo restituire il conteggio distinto da più colonne, dobbiamo usare il metodo CountDistint () all'interno del metodo Select () specificando il nome della colonna separato da una virgola.

Sintassi:

df.Select (CountDistinct ('column_name'), CountDistinct ('column_name'), .. ., CountDistinct ('column_name'))

Dove,

  1. DF è il frame dati pyspark input
  2. column_name è la colonna per ottenere il numero distinto di righe.

Esempio 1: colonna singola

Questo esempio otterrà il conteggio distinto dalla colonna di altezza nel frame dati pyspark.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#import countDistinct () funzione
da pyspark.SQL.funzioni importanti contadistint
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Students = ['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.69, 'peso': 67, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 16, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.79, 'peso': 28, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#Trenturn il conteggio distinto dalla colonna di altezza
df.Seleziona (CountDistinct ('altezza')).raccogliere()

Produzione:

[Riga (conteggio (altezza distinta) = 3)]

Nell'esempio sopra, il conteggio distinto dalla colonna di altezza viene restituito.

Esempio 2: più colonne

Questo esempio otterrà il conteggio distinto dall'altezza, all'età e alle colonne di peso nel frame dati Pyspark.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#import countDistinct () funzione
da pyspark.SQL.funzioni importanti contadistint
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 5 righe e 6 attributi
Students = ['rollno': '001', 'name': 'sravan', 'age': 23, 'altezza': 5.79, "peso": 67, "indirizzo": "guntur",
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.69, 'peso': 67, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 16, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '005', 'name': 'sridevi', 'age': 37, 'altezza': 5.79, 'peso': 28, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#TRIMINA LA CONTE DELLA DISTANTE DALL'ATTUTA DALL'ATTUALE
df.Select (CountDistinct ("altezza"), CountDistinct ("età"), CountDistinct ("peso")).raccogliere()

Produzione:

[Riga (conteggio (altezza distinta) = 3, conteggio (età distinta) = 4, conteggio (peso distinto) = 3)]

L'esempio sopra restituisce il conteggio distinto dalle colonne di altezza, età e peso.

Conclusione:

Abbiamo discusso di come ottenere il valore distinto della somma (totale) usando sumDistinct () e il numero distinto di righe (conteggio) usando CountDistinct () dal telaio dati PysPark usando il metodo Select ().