Pyspark Where Clause

Pyspark Where Clause
I Python er Pyspark en Spark -modul som brukes til å gi en lignende type prosessering som Spark ved hjelp av DataFrame. I Pyspark, hvor () brukes til å filtrere radene i DataFrame, vil den returnere den nye DataFrame ved å filtrere radene i den eksisterende DataFrame.
  1. Metode - 1: hvor () med relasjonelle operatører
  2. Metode - 2: hvor () med relasjonelle operatører som bruker COL -funksjon
  3. Metode - 3: hvor () med relasjonelle operatører på flere forhold
  4. Metode - 4: hvor () med SQL -uttrykk
  5. Metode - 5: hvor () med strengmetoder

La oss lage en Pyspark DataFrame:

Eksempel:

Dette eksemplet vil lage Pyspark DataFrame med 5 rader og 6 kolonner og vise den ved hjelp av showet () metoden.

#import pyspaprk -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import col -funksjonen
Fra Pyspark.SQL.Funksjoner importerer col
#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,
'Høyde': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16,
'Høyde': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7,
'Høyde': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9,
'Høyde': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37,
'Høyde': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#Display DataFrame
df.forestilling()

Produksjon:

Metode - 1: hvor () med relasjonelle operatører

Her bruker vi hvor () fungerer for å filtrere PySpark DataFrame med relasjonelle operatører som>, < . == etc.

Syntaks:

Dataramme.hvor (dataaframe.Kolonne_navn Operatørverdi)

Her, hvor () godtar tre parametere.

  1. Dataramme.kolonne_navn er kolonnen der filtrering brukes
  2. Operatør er den relasjonsoperatøren
  3. Verdien er streng/numerisk verdi sammenlignet med kolonneverdier

Eksempel:

I dette eksemplet vil vi filtrere DataFrame basert på alder, høyde, vekt og navnekolonner med forskjellige relasjonelle operatører og vise de filtrerte radene ved hjelp av Collect () -metoden.

#import pyspaprk -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import col -funksjonen
Fra Pyspark.SQL.Funksjoner importerer col
#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,
'Høyde': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16,
'Høyde': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7,
'Høyde': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9,
'Høyde': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37,
'Høyde': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#Display DataFrame
#by filtreringsalder som 23
trykk (df.hvor (df.alder == 23).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringshøyde som 2.79
trykk (df.hvor (df.Høyde == 2.79).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsvekt større enn 30
trykk (df.hvor (df.vekt> 30).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsnavn som Sravan
trykk (df.hvor (df.Navn == 'Sravan').samle inn())

Produksjon:

[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = 'Sravan', rollno = '001', vekt = 67)]
---------------------------
[Rad (adresse = 'patna', alder = 7, høyde = 2.79, navn = 'Gnanesh Chowdary', Rollno = '003', vekt = 17)]
---------------------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, navn = 'Sravan', rollno = '001', vekt = 67), rad (adresse = 'hyd', alder = 16, høyde = 3.79, navn = 'ojaswi', rollno = '002', vekt = 34), rad (adresse = 'hyd', alder = 37, høyde = 5.59, name = 'Sridevi', rollno = '005', vekt = 54)]
---------------------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = 'Sravan', rollno = '001', vekt = 67)]

Metode - 2: hvor () med relasjonelle operatører som bruker COL -funksjon

Her bruker vi hvor () fungerer for å filtrere PySpark DataFrame med relasjonelle operatører som>, < . == etc. through col function

Syntaks:

Dataramme.hvor (col (“Column_name”) operatørverdi)

Her, hvor () godtar tre parametere.

  1. Dataramme.kolonne_navn er kolonnen der filtrering brukes
  2. Operatør er den relasjonsoperatøren
  3. Verdien er streng/numerisk verdi sammenlignet med kolonneverdier

Eksempel:

I dette eksemplet vil vi filtrere DataFrame basert på alder, høyde, vekt og navnekolonner med forskjellige relasjonelle operatører og vise de filtrerte radene ved hjelp av Collect () -metoden.

#import pyspaprk -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import col -funksjonen
Fra Pyspark.SQL.Funksjoner importerer col
#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,
'Høyde': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16,
'Høyde': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7,
'Høyde': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9,
'Høyde': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37,
'Høyde': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#Display DataFrame
#by filtreringsalder som 23
trykk (df.hvor (col ('alder') == 23).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringshøyde som 2.79
trykk (df.hvor (col ('høyde') == 2.79).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsvekt større enn 30
trykk (df.hvor (col ('vekt')> 30).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsnavn som Sravan
trykk (df.hvor (col ('navn') == 'sravan').samle inn())

Produksjon:

[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = 'Sravan', rollno = '001', vekt = 67)]
---------------------------
[Rad (adresse = 'patna', alder = 7, høyde = 2.79, navn = 'Gnanesh Chowdary', Rollno = '003', vekt = 17)]
---------------------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, navn = 'Sravan', rollno = '001', vekt = 67), rad (adresse = 'hyd', alder = 16, høyde = 3.79, navn = 'ojaswi', rollno = '002', vekt = 34), rad (adresse = 'hyd', alder = 37, høyde = 5.59, name = 'Sridevi', rollno = '005', vekt = 54)]
---------------------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = 'Sravan', rollno = '001', vekt = 67)]

Metode - 3: hvor () med relasjonelle operatører på flere forhold

Her bruker vi hvor () fungerer for å filtrere PySpark DataFrame med relasjonelle operatører som>, < . == etc with multiple conditions.

Syntaks:

Dataramme.hvor ((conditin1) operatør (tilstand2) .. .)

Her, hvor () godtar tre parametere.

  1. Dataramme.kolonne_navn er kolonnen der filtrering brukes
  2. Operatør er den relasjonsoperatøren
  3. Verdien er streng/numerisk verdi sammenlignet med kolonneverdier
  4. Tilstand spesifiserer - (DataFrame.Kolonne_navn Operatørverdi)

Eksempel:

I dette eksemplet skal vi filtrere DataFrame basert på alderskolonnen med eller (|), og (&) operatør og vise de filtrerte radene ved hjelp av Collect () -metoden.

#import pyspaprk -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import col -funksjonen
Fra Pyspark.SQL.Funksjoner importerer col
#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,
'Høyde': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16,
'Høyde': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7,
'Høyde': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9,
'Høyde': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37,
'Høyde': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#Display DataFrame
#by filtreringsalder større enn 10 og mindre enn 21
trykk (df.hvor ((df.Alder> 10) & (DF.alder <21)).collect())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsalder større enn 10 eller mindre enn 21
trykk (df.hvor ((df.Alder> 10) | (DF.alder <21)).collect())

Produksjon:

[Rad (adresse = 'hyd', alder = 16, høyde = 3.79, name = 'ojaswi', rollno = '002', vekt = 34)]
---------------------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, navn = 'Sravan', rollno = '001', vekt = 67), rad (adresse = 'hyd', alder = 16, høyde = 3.79, navn = 'ojaswi', rollno = '002', vekt = 34), rad (adresse = 'patna', alder = 7, høyde = 2.79, navn = 'Gnanesh Chowdary', Rollno = '003', vekt = 17), rad (adresse = 'Hyd', alder = 9, høyde = 3.69, navn = 'Rohith', rollno = '004', vekt = 28), rad (adresse = 'hyd', alder = 37, høyde = 5.59, name = 'Sridevi', rollno = '005', vekt = 54)]

Metode - 4: hvor () med SQL -uttrykk

Her bruker vi Where () -funksjonen for å filtrere Pyspark DataFrame med SQL -uttrykk. Tilstanden er omsluttet av “”. Vi kan imidlertid spesifisere relasjonsoperatør som en betingelse.

Syntaks:

Dataramme.hvor (“Dataframe.kolonne_name Operatørverdi ”)

Her, hvor () godtar tre parametere.

  1. Dataramme.kolonne_navn er kolonnen der filtrering brukes
  2. Operatør er den relasjonsoperatøren
  3. Verdien er streng/numerisk verdi sammenlignet med kolonneverdier

Eksempel:

I dette eksemplet vil vi filtrere DataFrame basert på alder, høyde, vekt og navnekolonner med forskjellige relasjonelle operatører og vise de filtrerte radene ved hjelp av Collect () -metoden.

#import pyspaprk -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import col -funksjonen
Fra Pyspark.SQL.Funksjoner importerer col
#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,
'Høyde': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16,
'Høyde': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7,
'Høyde': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9,
'Høyde': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37,
'Høyde': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#Display DataFrame
#by filtreringsalder som 23
#bruk SQL -uttrykk
trykk (df.hvor ("alder == 23").samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringshøyde som 2.79
#bruk SQL -uttrykk
trykk (df.hvor ("høyde == 2.79 ").samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsvekt større enn 30
#bruk SQL -uttrykk
trykk (df.hvor ("vekt> 30").samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsnavn som Sravan
#bruk SQL -uttrykk
trykk (df.hvor ("name == 'sravan'").samle inn())

Produksjon:

[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = 'Sravan', rollno = '001', vekt = 67)]
---------------------------
[Rad (adresse = 'patna', alder = 7, høyde = 2.79, navn = 'Gnanesh Chowdary', Rollno = '003', vekt = 17)]
---------------------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, navn = 'Sravan', rollno = '001', vekt = 67), rad (adresse = 'hyd', alder = 16, høyde = 3.79, navn = 'ojaswi', rollno = '002', vekt = 34), rad (adresse = 'hyd', alder = 37, høyde = 5.59, name = 'Sridevi', rollno = '005', vekt = 54)]
---------------------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = 'Sravan', rollno = '001', vekt = 67)]

Metode - 5: hvor () med strengmetoder

Her bruker vi Where () -funksjonen for å filtrere Pyspark DataFrame med strengmetoder. Disse brukes på kolonnene hvis datatype er en streng. De er

begynner med() - Sjekk starttegnet i de gitte dataene

Syntaks:

Dataramme.hvor (dataaframe.kolonne_navn.Startswith ("karakter")

Her,

Kolonne_navn er kolonnen der filtrering brukes der verdien starter med det gitte tegnet.

slutter med() - Sjekk sluttkarakteren i de gitte dataene

Syntaks:

Dataramme.hvor (dataaframe.kolonne_navn.Endswith ("karakter")

Her,

Kolonne_navn er kolonnen der filtrering brukes der verdien ender med det gitte tegnet.

inneholder () - Sjekk tegnet inneholder i de gitte dataene

Syntaks:

Dataramme.hvor (dataaframe.kolonne_navn.inneholder ("karakter")

Her,

Kolonne_navn er kolonnen der filtrering brukes der verdien inneholder med det gitte tegnet.

Eksempel:

I dette eksemplet skal vi filtrere basert på adressekolonnen

#import pyspaprk -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#import col -funksjonen
Fra Pyspark.SQL.Funksjoner importerer col
#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,
'Høyde': 5.79, 'vekt': 67, 'adresse': 'guntur',
'Rollno': '002', 'Navn': 'Ojaswi', 'Age': 16,
'Høyde': 3.79, 'vekt': 34, 'adresse': 'hyd',
'Rollno': '003', 'Navn': 'Gnanesh Chowdary', 'Age': 7,
'Høyde': 2.79, 'Vekt': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Navn': 'Rohith', 'Age': 9,
'Høyde': 3.69, 'vekt': 28, 'adresse': 'hyd',
'Rollno': '005', 'Navn': 'Sridevi', 'Age': 37,
'Høyde': 5.59, 'vekt': 54, 'adresse': 'hyd']]
# Lag DataFrame
df = spark_app.CreateTataFrame (studenter)
#Display DataFrame
#by filtreringsadresse
#Starts med 'H'
trykk (df.hvor (df.adresse.StartSwith ("H")).samle inn())
skrive ut("-----------------")
#Display DataFrame
#by filtreringsadresse
#ends med 'r'
trykk (df.hvor (df.adresse.Endswith ("R")).samle inn())
skrive ut("-----------------")
#Display DataFrame
#by filtreringsadresse
#Comntain 'Tu'
trykk (df.hvor (df.adresse.inneholder ("R")).samle inn())

Produksjon:

[Rad (adresse = 'hyd', alder = 16, høyde = 3.79, navn = 'Ojaswi', rollno = '002', vekt = 34), rad (adresse = 'hyd', alder = 9, høyde = 3.69, navn = 'Rohith', rollno = '004', vekt = 28), rad (adresse = 'hyd', alder = 37, høyde = 5.59, name = 'Sridevi', rollno = '005', vekt = 54)]
-----------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = 'Sravan', rollno = '001', vekt = 67)]
-----------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = 'Sravan', rollno = '001', vekt = 67)]

Konklusjon

Denne artikkelen diskuterer hvordan du bruker et hvor () filter med flere metoder på Pyspark DataFrame i Python. Og vi inkluderte alle forholdene med SQL -uttrykk også.