I Python er Pyspark en Spark -modul som brukes til å gi en lignende type prosessering som Spark ved hjelp av DataFrame. I Pyspark,
filter() brukes til å filtrere radene i DataFrame. Det vil returnere den nye DataFrame ved å filtrere radene i det eksisterende DataFrame. Vi vil demonstrere fire måter å bruke
filter() Funksjon i denne artikkelen:
- Metode - 1: filter () med relasjonelle operatører
- Metode - 2: Filter () med relasjonelle operatører som bruker COL -funksjon
- Metode - 3: Filter () med relasjonelle operatører på flere forhold
- Metode - 4: filter () med SQL -uttrykk
La oss først lage en Pyspark DataFrame som vi kan bruke til eksemplene.
Eksempel:
I dette eksemplet skal vi lage Pyspark DataFrame med 5 rader og 6 kolonner og vise ved hjelp av show () -metoden.
#import Pyspark -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: filter () med relasjonelle operatører
Her bruker vi filter () -funksjon for å filtrere PySpark DataFrame med relasjonelle operatører som>, < . == etc.
Syntaks:
Dataramme.Filter (DataFrame.Kolonne_navn Operatørverdi)
Her godtar filter () tre parametere.
- Dataramme.kolonne_navn er kolonnen der filtrering brukes.
- Operatør er den relasjonsoperatøren.
- Verdien er streng/numerisk verdi sammenlignet med kolonneverdier.
Eksempel:
I dette eksemplet skal vi filtrere DataFrame basert på alders-, høyde-, vekt- og navnekolonner med forskjellige relasjonelle operatører og vise de filtrerte radene ved hjelp av Collect () -metoden.
#import Pyspark -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.Filter (DF.alder == 23).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringshøyde som 2.79
trykk (df.Filter (DF.Høyde == 2.79).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsvekt større enn 30
trykk (df.Filter (DF.vekt> 30).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsnavn som Sravan
trykk (df.Filter (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, name = "Gnanesh Chowdary", rollno = "003", vekt = 17)]
---------------------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = "Sravan", rollno = "001", vekt = 67), rad (adresse = 'hyd', alder = 16, høyde = 3.79, name = "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: Filter () med relasjonelle operatører som bruker COL -funksjon
Her bruker vi filter () -funksjon for å filtrere PySpark DataFrame med relasjonelle operatører som>, < . == etc. through col function.
Syntaks:
Dataramme.Filter (COL (“Column_name”) Operatørverdi)
Her, hvor () godtar tre parametere.
- Dataramme.kolonne_navn er kolonnen der filtrering brukes.
- Operatør er den relasjonsoperatøren.
- Verdien er streng/numerisk verdi sammenlignet med kolonneverdier.
Eksempel:
I dette eksemplet skal vi filtrere DataFrame basert på alders-, høyde-, vekt- og navnekolonner med forskjellige relasjonelle operatører og vise de filtrerte radene ved hjelp av Collect () -metoden.
#import Pyspark -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.filter (col ('alder') == 23).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringshøyde som 2.79
trykk (df.filter (col ('høyde') == 2.79).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsvekt større enn 30
trykk (df.filter (col ('vekt')> 30).samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsnavn som Sravan
trykk (df.filter (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, name = "Gnanesh Chowdary", rollno = "003", vekt = 17)]
---------------------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = "Sravan", rollno = "001", vekt = 67), rad (adresse = 'hyd', alder = 16, høyde = 3.79, name = "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: Filter () med relasjonelle operatører på flere forhold
Her bruker vi filter () -funksjon for å filtrere PySpark DataFrame med relasjonelle operatører som>, < . == etc with multiple conditions.
Syntaks:
Dataramme.Filter ((Conditin1) Operator (Condition2) .. .)
Her godtar filter () tre parametere.
- Dataramme.kolonne_navn er kolonnen der filtrering brukes.
- Operatør er den relasjonsoperatøren.
- Verdien er streng/numerisk verdi sammenlignet med kolonneverdier.
- 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 Pyspark -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.Filter ((DF.Alder> 10) & (DF.alder <21)).collect())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsalder større enn 10 eller mindre enn 21
trykk (df.Filter ((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, name = "Sravan", rollno = "001", vekt = 67), rad (adresse = 'hyd', alder = 16, høyde = 3.79, name = "Ojaswi", rollno = "002", vekt = 34), rad (adresse = 'Patna', alder = 7, høyde = 2.79, name = "Gnanesh Chowdary", rollno = "003", vekt = 17), rad (adresse = 'hyd', alder = 9, høyde = 3.69, name = "rohith", rollno = "004", vekt = 28), rad (adresse = 'hyd', alder = 37, høyde = 5.59, name = "sridevi", rollno = "005", vekt = 54)]
Metode - 4: filter () med SQL -uttrykk
Her bruker vi filter () -funksjonen for å filtrere Pyspark DataFrame med SQL -uttrykk. Tilstanden er omsluttet av “”. Vi kan imidlertid spesifisere relasjonsoperatør som en betingelse.
Syntaks:
Dataramme.filter (“Dataframe.kolonne_name Operatørverdi ”)
Her godtar filter () tre parametere.
- Dataramme.kolonne_navn er kolonnen der filtrering brukes.
- Operatør er den relasjonsoperatøren.
- Verdien er streng/numerisk verdi sammenlignet med kolonneverdier.
Eksempel:
I dette eksemplet skal vi filtrere DataFrame basert på alders-, høyde-, vekt- og navnekolonner med forskjellige relasjonelle operatører og vise de filtrerte radene ved hjelp av Collect () -metoden.
#import Pyspark -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.filter ("alder == 23").samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringshøyde som 2.79
#bruk SQL -uttrykk
trykk (df.filter ("høyde == 2.79 ").samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsvekt større enn 30
#bruk SQL -uttrykk
trykk (df.Filter ("Vekt> 30").samle inn())
skrive ut("---------------------------")
#Display DataFrame
#by filtreringsnavn som Sravan
#bruk SQL -uttrykk
trykk (df.filter ("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, name = "Gnanesh Chowdary", rollno = "003", vekt = 17)]
---------------------------
[Rad (adresse = 'guntur', alder = 23, høyde = 5.79, name = "Sravan", rollno = "001", vekt = 67), rad (adresse = 'hyd', alder = 16, høyde = 3.79, name = "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 - 4: filter () med strengmetoder
Her bruker vi filter () -funksjonen for å filtrere Pyspark DataFrame med strengmetoder. Disse brukes på kolonnene hvis datatype er streng. De er:
begynner med() - Sjekk starttegnet i de gitte dataene
Syntaks:
Dataramme.Filter (DataFrame.kolonne_navn.Startswith ("karakter")
Her kolonne_navn er kolonnen der filtrering brukes der verdien starter med den gitte karakteren.
slutter med() - Sjekk sluttkarakteren i de gitte dataene.
Syntaks:
Dataramme.Filter (DataFrame.kolonne_navn.Endswith ("karakter")
Her kolonne_navn er kolonnen der filtrering brukes der verdien ender med den gitte karakteren.
inneholder () - Sjekk tegnet inneholder i de gitte dataene.
Syntaks:
Dataramme.Filter (DataFrame.kolonne_navn.inneholder ("karakter")
Her kolonne_navn er kolonnen der filtrering brukes der verdien inneholder med den gitte karakteren.
Eksempel:
I dette eksemplet skal vi filtrere basert på adressekolonnen.
#import Pyspark -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.Filter (DF.adresse.StartSwith ("H")).samle inn())
skrive ut("-----------------")
#Display DataFrame
#by filtreringsadresse
#ends med 'r'
trykk (df.Filter (DF.adresse.Endswith ("R")).samle inn())
skrive ut("-----------------")
#Display DataFrame
#by filtreringsadresse
#Comntain 'Tu'
trykk (df.Filter (DF.adresse.inneholder ("R")).samle inn())
Produksjon:
[Rad (adresse = 'hyd', alder = 16, høyde = 3.79, name = "Ojaswi", rollno = "002", vekt = 34), rad (adresse = 'hyd', alder = 9, høyde = 3.69, name = "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
I denne artikkelen diskuterte vi hvordan du bruker en filter () -funksjon med flere metoder på Pyspark DataFrame i Python. Og vi inkluderte alle forholdene med SQL -uttrykk også.