Pyspark - distinto

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

distinto () in pyspark rimuove righe/dati duplicati e restituisce le righe univoci dal telaio dati.

Usando distinto () possiamo rimuovere le righe duplicate nel frame dati pyspark.

Possiamo abbandonare le colonne dal frame dati in due modi.

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

Esempio:

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

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#Import the CountFunction
da pyspark.SQL.Funzioni Conteggio delle importazioni
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 8 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.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, '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.59, 'peso': 54, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#display il frame dati
df.spettacolo()

Produzione:

In questo frame dati, i dati duplicati sono rollno - 2, 3 e 4 . Sono dati duplicati perché si sono verificati due volte. Quindi dobbiamo rimuovere questo duplicato e restituire le righe rimanenti usando la funzione distinta (). Questo metodo restituirà i nomi delle colonne insieme al suo tipo di dati.

Scenario -1: ottenere dati distinti dall'intero frame dati

Otteneremo i dati distinti dall'intero frame dati utilizzando la funzione distinto ()

Sintassi:

df.distinto ()

Dove df è il frame dati di input pyspark

Infine, dobbiamo utilizzare il metodo Collect () per restituire tutte le righe dal frame dati.

Esempio :

In questo esempio, otterremo i dati distinti dall'intero frame dati.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#Import the CountFunction
da pyspark.SQL.Funzioni Conteggio delle importazioni
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 8 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.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, '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.59, 'peso': 54, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#ged le righe distinte
Stampa (df.distinto ().raccogliere())

Produzione:

[Riga (indirizzo = 'guntur', età = 23, altezza = 5.79, name = 'sravan', rollno = '001', peso = 67),
Riga (indirizzo = 'hyd', età = 9, altezza = 3.69, name = 'rohith', rollno = '004', peso = 28),
Riga (indirizzo = 'patna', età = 7, altezza = 2.79, nome = 'gnanesh chowdary', rollno = '003', peso = 17),
Riga (indirizzo = 'hyd', età = 16, altezza = 3.79, name = 'ojaswi', rollno = '002', peso = 34),
Riga (indirizzo = 'hyd', età = 37, altezza = 5.59, name = 'sridevi', rollno = '005', peso = 54)]

Nell'esempio sopra, vedremo che le righe duplicate vengono rimosse.

Scenario - 2: ottenere dati distinti da particolari colonne nel frame dati.

Useremo il metodo Select () per ottenere le righe distinte dalle colonne selezionate, il metodo Select () viene utilizzato per selezionare le colonne e, successivamente, dobbiamo utilizzare la funzione distinta () per restituire valori univoci dalla colonna selezionata , e infine, dobbiamo usare il metodo Collect () per ottenere le righe dalla funzione distinta ().

Sintassi:

df.Seleziona ("column_name").distinto ()

Dove,

  1. DF è il frame dati pyspark input
  2. column_name è la colonna.

Esempio :

In questo esempio, otterremo separatamente le righe distinte dalla colonna Rollno, nome e indirizzo.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#Import the CountFunction
da pyspark.SQL.Funzioni Conteggio delle importazioni
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 8 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.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, '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.59, 'peso': 54, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#get le righe distinte dalla colonna Rollno
Stampa (df.Seleziona ("rollno").distinto ().raccogliere())
#get le righe distinte dalla colonna Nome
Stampa (df.Seleziona ("Nome").distinto ().raccogliere())
#get le righe distinte dalla colonna dell'indirizzo
Stampa (df.Seleziona ("indirizzo").distinto ().raccogliere())

Produzione:

[Riga (rollno = '003'), riga (rollno = '001'), riga (rollno = '004'), riga (rollno = '002'), riga (rollno = '005')]
[Riga (name = 'rohith'), riga (name = 'gnanesh chowdary'), riga (name = 'sravan'), riga (name = 'ojaswi'), riga (name = 'sridevi')]
[Riga (indirizzo = 'patna'), riga (indirizzo = 'hyd'), riga (indirizzo = 'guntur')]

Nell'esempio sopra, abbiamo restituito le righe distinte dalla colonna Rollno, Nome e Indirizzo

Scenario - 3: Ottieni dati distinti da più colonne nel frame dati.

Useremo il metodo Select () per ottenere le righe distinte dalle più colonne selezionate alla volta. colonne, il metodo Select () viene utilizzato per selezionare le colonne e, successivamente, dobbiamo utilizzare la funzione distinta () per restituire valori univoci dalla colonna selezionata. Infine, dobbiamo usare il metodo collect () per ottenere le righe dalla funzione distinta ().

Sintassi:

df.Select ("column_name", "column_name", ..., "column_name").distinto ()

Dove,

  1. DF è il frame dati pyspark input
  2. column_name è la colonna.

Esempio :

In questo esempio, otterremo le righe distinte dalla colonna rollno, nome e indirizzo alla volta.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#Import the CountFunction
da pyspark.SQL.Funzioni Conteggio delle importazioni
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 8 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.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, '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.59, 'peso': 54, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#get le righe distinte da rollno, nome e colonne indirizzi
Stampa (df.Seleziona ("rollno", "nome", "indirizzo").distinto ().raccogliere())

Produzione:

[Riga (rollno = '002', name = 'ojaswi', indirizzo = 'hyd'), riga (rollno = '004', name = 'rohith', indirizzo = 'hyd'), riga (rollno = '001' , name = 'sravan', indirizzo = 'guntur'), ​​riga (rollno = '003', name = 'gnanesh chowdary', indirizzo = 'patna'), riga (rollno = '005', name = 'sridevi' indirizzo = 'hyd')]

Nell'esempio sopra, abbiamo restituito le righe distinte dalla colonna Rollno, Nome e Indirizzo

Se vogliamo ottenere il numero totale di righe distinte, dobbiamo usare la funzione count () dopo la funzione distinta ().

Sintassi:

df.distinto ().contare()

Esempio:

In questo esempio, stiamo restituendo il conteggio di righe uniche.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#Import the CountFunction
da pyspark.SQL.Funzioni Conteggio delle importazioni
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# Crea dati studenteschi con 8 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.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, 'altezza': 2.79, 'peso': 17, 'indirizzo': 'patna',
'rollno': '004', 'name': 'rohith', 'age': 9, 'altezza': 3.69, 'peso': 28, 'indirizzo': 'hyd',
'rollno': '002', 'name': 'ojaswi', 'age': 16, 'altezza': 3.79, 'peso': 34, 'indirizzo': 'hyd',
'rollno': '003', 'name': 'gnanesh chowdary', 'age': 7, '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.59, 'peso': 54, 'indirizzo': 'hyd']
# Crea il frame dati
df = spark_app.CreatedataFrame (Students)
#get il conteggio distinto
Stampa (df.distinto ().contare())

Produzione:

5

Conclusione:

Abbiamo discusso di come ottenere dati distinti dall'intero frame dati e colonne singole/multiple. Per ottenere il conteggio di valori unici, utilizziamo il metodo Count () e distinto ().