Pyspark - Expr

Pyspark - Expr
In Python, Pyspark è un modulo Spark che fornisce un tipo di elaborazione simile come Spark utilizzando DataFrame. expr () in pyspark si riferisce a un'espressione SQL utilizzata per estrarre i dati eseguendo alcune operazioni. expr () può essere utilizzato in molti scenari.

Sintassi effettiva

expr (espressione SQL)

Prende un'espressione SQL ed esegue alcune operazioni all'interno dell'espressione.

Discutiamolo uno per uno. Prima di allora, dobbiamo creare un frame dati pyspark per la dimostrazione."

Esempio
Creeremo un frame dati con 5 righe e 6 colonne e visualizzeremo 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.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 DataFrame
df.spettacolo()

Produzione

scenario 1: Concatenare una o più colonne

In questo scenario, concateremo una o più colonne nel PysPark DataFrame utilizzando Expr ().

Utilizza il metodo WithColumn () per creare un nuovo nome di colonna per le colonne concatenate.

Sintassi

DataFrame.WithColumn ("column_name", espressione)

Parametri
Ci vogliono due parametri.

  1. Il primo è il nome della colonna utilizzato come nome della colonna per le colonne concatenate
  2. L'espressione viene creata usando le colonne Expr () per concatenare.

Qui l'espressione è:

expr ("column1 || separatore || colonna2 || separatore '||… || colonna n”)

Qui, la colonna si riferisce ai nomi della colonna da concaterare con un separatore tra loro. Può essere qualsiasi personaggio, come personaggi speciali.

Esempio
In questo esempio, stiamo concatenando tre colonne - rotolare nessun nome e indirizzo separati da “ -” e il nome della colonna per queste colonne concatenate è - “rollno con nome e indirizzo."

#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.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)
#Concate rollno, nome e colonne di indirizzi uaing expr ()
df.WithColumn ("rollno con nome e indirizzo", expr ("rollno || '-' || name || '-' || indirizzo")).spettacolo()

Produzione

Possiamo vedere che le colonne rollno, nome e indirizzo sono concatenate con il separatore “-”.

Scenario 2: aggiungi una nuova colonna in base alle condizioni

Qui useremo Expr () per specificare le condizioni al suo interno e, insieme a Column (), per assegnare i valori dalle condizioni restituite in una nuova colonna.

Possiamo specificare le condizioni utilizzando il caso quando

Struttura

Caso quando
POI
Caso quando
POI
..
..
ALTRO
FINE

All'interno, quando dobbiamo fornire la condizione e all'interno, allora dobbiamo eseguire un'azione.

Se la condizione all'interno è vera, il blocco viene eseguito. Se fallisce, va al blocco e alla fine altro.

Questa dichiarazione condizionale è fornita all'interno di Expr () come espressione SQL.

Sintassi

DataFrame.withColumn ("colonna", expr ("caso quando condizione1 quindi azione" +"quando condition2 allora azione ... else fine fine"))

Dove,

  1. la colonna è la nuova colonna che viene creata e i valori sono assegnati in base alle condizioni in questa colonna
  2. expr () prende caso quando la logica condizionale

Esempio
In questo esempio, stiamo creando una nuova colonna: "altezza aggiornata" e assegnando i valori in base alle seguenti condizioni applicate alla colonna di altezza.

Se l'altezza è maggiore di 5 - assegna 10 nella colonna di altezza aggiornata attraverso di essa.

Se l'altezza è inferiore a 5, assegna 5 nella colonna di altezza aggiornata attraverso di essa.

Altrimenti, aggiornare la colonna di altezza su 7 attraverso le righe.

#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.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)
#In colonna in altezza
#Se l'altezza è maggiore di 5 - Assegna 10 nella colonna di altezza aggiornata attraverso di essa
#Se l'altezza è inferiore a 5 - Assegna 5 nella colonna di altezza aggiornata attraverso di essa
#Altrettanto aggiornamento della colonna di altezza come 7 attraverso le righe
df.WithColumn ("Altezza aggiornata", expr ("Caso quando altezza> 5 poi 10" +"quando altezza <5 THEN 5 ELSE 7 END")).show()

Produzione

Possiamo vedere che i valori sono allocati nella colonna "Altezza aggiornata" in base alle condizioni.

Scenario 3: eseguire operazioni aritmetiche

È possibile eseguire operazioni aritmetiche come aggiunta, sottrazione, moltiplicazione e divisione con colonne esistenti che utilizzano EXPR ().

Qui expr () può essere utilizzato con una clausola selezionata per visualizzare le colonne aggiornate.

Sintassi

DataFrame.Seleziona (expr ("espressione"))

L'espressione viene utilizzata per eseguire operazioni aritmetiche che possono essere:

"Valore della colonna aritmetica_operatore come new_column"

Qui, la colonna è il nome della colonna in cui possiamo eseguire operazioni aritmetiche; Il valore è il numero aggiunto a ciascuna riga nella colonna e new_column è il nome della colonna che memorizza il risultato.

Esempio
In questo esempio, eseguiremo due operazioni aritmetiche: aggiunta e sottrazione sulla colonna di età.

#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.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)
#Add da 10 a età colonna
df.Seleziona (df.età, expr ("età + 10 come age_after_10").spettacolo()
#subtract 10 dalla colonna di età
df.Seleziona (df.età, expr ("età - 10 come age_before_10").spettacolo()

Produzione

Nell'operazione di addizione, stiamo aggiungendo 10 alla colonna di età e archiviamo nella colonna "Age_After_10".

Nell'operazione di sottrazione, sottraggiamo 10 dalla colonna di età e la memorizziamo nella colonna "Age_before_10".

Conclusione

In questo tutorial Pyspark, abbiamo visto come usare Expr () in tre diversi scenari. Può essere utilizzato per le espressioni condizionali, può essere utilizzato per eseguire operazioni aritmetiche e può essere utilizzato per concatenare più colonne.