Pyspark - Expr

Pyspark - Expr
I Python er Pyspark en Spark -modul som gir en lignende type prosessering som Spark ved hjelp av DataFrame. expr () I Pyspark refererer til et SQL -uttrykk som brukes til å trekke ut dataene ved å utføre noen operasjoner. expr () kan brukes i mange scenarier.

Faktisk syntaks

expr (SQL -uttrykk)

Det tar et SQL -uttrykk og utfører noen operasjoner innenfor uttrykket.

La oss diskutere det en etter en. Før det må vi lage en Pyspark DataFrame for demonstrasjon.”

Eksempel
Vi skal lage en dataaframe med 5 rader og 6 kolonner og vise den ved hjelp av showet () metoden.

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter = ['Rollno': '001', 'Navn': 'Sravan', 'Age': 23, 'Height': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16, 'Height': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7, 'Height': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9, 'Height': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37, 'Height': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#Display DataFrame
df.forestilling()

Produksjon

Scenario 1: Samvirke en eller flere kolonner

I dette scenariet vil vi sammenkoble en eller flere kolonner i PySpark DataFrame ved å bruke Expr ().

Den bruker WithColumn () -metoden for å lage et nytt kolonnenavn for sammenkoblingskolonnene.

Syntaks

Dataramme.WithColumn ("Column_name", uttrykk)

Parametere
Det tar to parametere.

  1. Først er kolonnenavnet som brukes som kolonnenavn for de sammenkoblede kolonnene
  2. Uttrykk opprettes ved hjelp av expr () til sammenkoblingskolonner.

Her er uttrykket:

expr ("kolonne1 || separator || kolonne2 || separator '|| ... || kolonne n”)

Her refererer kolonnen til kolonnenavn som skal samles med en separator mellom dem. Det kan være hvilken som helst karakter, som spesialtegn.

Eksempel
I dette eksemplet samvirker vi tre kolonner - rull No Name and Adresse atskilt med “ -“ Og kolonnenavnet for disse sammenkoblede kolonnene er - “Rollno med navn og adresse.”

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter = ['Rollno': '001', 'Navn': 'Sravan', 'Age': 23, 'Height': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16, 'Height': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7, 'Height': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9, 'Height': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37, 'Height': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#concate rollno, navn og adressekolonner uaing expr ()
df.WithColumn ("Rollno med navn og adresse", Expr ("Rollno || '-' || Navn || '-' || adresse")).forestilling()

Produksjon

Vi kan se at rollno, navn og adressekolonner er sammenkoblet med "-" separatoren.

Scenario 2: Legg til en ny kolonne basert på forhold

Her vil vi bruke expr () for å spesifisere forholdene i den og sammen med Column (), for å tilordne verdiene fra forholdene som returneres i en ny kolonne.

Vi kan spesifisere forholdene ved å bruke sak når

Struktur

Sak når
DERETTER
Sak når
DERETTER
..
..
ELLERS
SLUTT

Innvendig, når vi må gi tilstanden og inne, må vi utføre en handling.

Hvis tilstanden inni er sann, blir blokken utført. Hvis det mislykkes, går det til annet blokken og slutten.

Denne betingede uttalelsen er gitt i expr () som et SQL -uttrykk.

Syntaks

Dataramme.withColumn ("kolonne", expr ("case when condition1 da action" +"når tilstand2 så handling ... ellers handling slutt")

Hvor,

  1. Kolonnen er den nye kolonnen som opprettes, og verdiene tilordnes basert på forholdene i denne kolonnen
  2. expr () tar sak når betinget logikk

Eksempel
I dette eksemplet oppretter vi en ny kolonne - "oppgradert høyde" og tildeler verdier til den basert på følgende forhold som brukes på høydekolonnen.

Hvis høyden er større enn 5 - tilordne 10 i den oppgraderte høydekolonnen over den.

Hvis høyden er mindre enn 5 - tilordne 5 i den oppgraderte høydekolonnen over den.

Ellers oppgraderer du høydekolonnen til 7 over radene.

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter = ['Rollno': '001', 'Navn': 'Sravan', 'Age': 23, 'Height': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16, 'Height': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7, 'Height': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9, 'Height': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37, 'Height': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#In høyde kolonne
#hvis høyden er større enn 5 - tilordne 10 i oppgradert høydekolonne over den
#hvis høyden er mindre enn 5 - tilordne 5 i oppgradert høydekolonne over den
#ellers oppgradert høydekolonne som 7 over radene
df.With Column ("Oppgradert høyde", Expr ("Case når høyde> 5 deretter 10" +"Når høyden <5 THEN 5 ELSE 7 END")).show()

Produksjon

Vi kan se at verdiene er tildelt i kolonnen "Oppgradert høyde" basert på forholdene.

Scenario 3: Utfør aritmetiske operasjoner

Det er mulig å utføre aritmetiske operasjoner som tillegg, subtraksjon, multiplikasjon og inndeling med eksisterende kolonner ved bruk av expr ().

Her kan expr () brukes med en valgt klausul for å vise de oppdaterte kolonnene.

Syntaks

Dataramme.Velg (Expr (“Uttrykk”))

Uttrykket brukes til å utføre aritmetiske operasjoner som kan være:

“Kolonne aritmetikk_operatorverdi som new_column”

Her er kolonnen kolonnenavnet der vi kan utføre aritmetiske operasjoner; Verdien er nummeret som er lagt til hver rad i kolonnen, og New_Column er kolonnenavnet som lagrer resultatet.

Eksempel
I dette eksemplet vil vi utføre to aritmetiske operasjoner - tillegg og subtraksjon i alderssøylen.

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Lag studentdata med 5 rader og 6 attributter
Studenter = ['Rollno': '001', 'Navn': 'Sravan', 'Age': 23, 'Height': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16, 'Height': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7, 'Height': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9, 'Height': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37, 'Height': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#add 10 til alderssøyle
df.Velg (DF.Alder, expr ("Alder + 10 som alder_after_10")).forestilling()
#Subtraksjon 10 fra alderssøyle
df.Velg (DF.Alder, expr ("Alder - 10 som alder_before_10")).forestilling()

Produksjon

I tilleggsoperasjonen legger vi til 10 i alderskolonnen og lagrer i kolonnen "Age_after_10".

I subtraksjonsoperasjonen trekker vi 10 fra alderssøylen og lagrer den i kolonnen "Age_before_10".

Konklusjon

I denne pyspark -opplæringen så vi hvordan vi bruker expr () i tre forskjellige scenarier. Den kan brukes til betingede uttrykk, den kan brukes til å utføre aritmetiske operasjoner, og den kan brukes til å sammenkoble flere kolonner.