PYSPARK - Filter

PYSPARK - Filter
In Python ist PySpark ein Spark -Modul, mit dem eine ähnliche Art von Verarbeitung wie Spark mit DataFrame bereitgestellt wird. In Pyspark, Filter() wird verwendet, um die Zeilen im Datenrahmen zu filtern. Es wird den neuen Datenrahmen zurückgeben, indem die Zeilen im vorhandenen Datenrahmen gefiltert werden. Wir werden vier Möglichkeiten demonstrieren, die zu verwenden Filter() Funktion in diesem Artikel:
  1. Methode - 1: filter () mit relationalen Operatoren
  2. Methode - 2: filter () mit relationalen Operatoren mithilfe der Col -Funktion
  3. Methode - 3: filter () mit relationalen Operatoren unter mehreren Bedingungen
  4. Methode - 4: filter () mit SQL -Expression

Erstellen wir zunächst einen PYSPARK -Datenrahmen, den wir für die Beispiele verwenden können.

Beispiel:

In diesem Beispiel erstellen wir den PYSpark -Datenfreame mit 5 Zeilen und 6 Spalten und Anzeigen mithilfe von show ().

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#Importieren Sie die Col -Funktion
aus pysspark.sql.Funktionen importieren col
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie Studentendaten mit 5 Zeilen und 6 Attributen
Schüler = [
'Rollno': '001', 'Name': 'Sravan', 'Alter': 23,
'Höhe': 5.79, 'Gewicht': 67, 'Adresse': 'Guntur',
'Rollno': '002', 'Name': 'Ojaswi', 'Age': 16,
'Höhe': 3.79, 'Gewicht': 34, 'Adresse': 'Hyd',
'Rollno': '003', 'Name': 'Gnanesh Chowdary', 'Age': 7,
'Höhe': 2.79, 'Gewicht': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Name': 'Rohith', 'Alter': 9,
'Höhe': 3.69, 'Gewicht': 28, 'Adresse': 'Hyd',
'Rollno': '005', 'Name': 'Sridevi', 'Age': 37,
'Höhe': 5.59, 'Gewicht': 54, 'Adresse': 'Hyd']
# Erstellen Sie den Datenrahmen
df = spark_app.Createdataframe (Studenten)
#Display DataFrame
df.zeigen()

Ausgang:

Methode - 1: filter () mit relationalen Operatoren

Hier verwenden wir die Funktion filter (), um den PYSPARK -Datenrahmen mit relationalen Operatoren wie> zu filtern, < . == etc.

Syntax:

Datenrahmen.Filter (DataFrame.Spalten_Name -Operatorwert)

Hier akzeptiert Filter () drei Parameter.

  1. Datenrahmen.column_name ist die Spalte, in der Filterung angewendet wird.
  2. Operator ist der relationale Operator.
  3. Wert ist der Zeichenfolge/numerische Wert im Vergleich zu Spaltenwerten.

Beispiel:

In diesem Beispiel werden wir den Datenrahmen basierend auf den Spalten von Alter, Größe, Gewicht und Namen mit verschiedenen relationalen Operatoren filtern und die gefilterten Zeilen mit der Methode Collect () anzeigen.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#Importieren Sie die Col -Funktion
aus pysspark.sql.Funktionen importieren col
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie Studentendaten mit 5 Zeilen und 6 Attributen
Schüler = [
'Rollno': '001', 'Name': 'Sravan', 'Alter': 23,
'Höhe': 5.79, 'Gewicht': 67, 'Adresse': 'Guntur',
'Rollno': '002', 'Name': 'Ojaswi', 'Age': 16,
'Höhe': 3.79, 'Gewicht': 34, 'Adresse': 'Hyd',
'Rollno': '003', 'Name': 'Gnanesh Chowdary', 'Age': 7,
'Höhe': 2.79, 'Gewicht': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Name': 'Rohith', 'Alter': 9,
'Höhe': 3.69, 'Gewicht': 28, 'Adresse': 'Hyd',
'Rollno': '005', 'Name': 'Sridevi', 'Age': 37,
'Höhe': 5.59, 'Gewicht': 54, 'Adresse': 'Hyd']
# Erstellen Sie den Datenrahmen
df = spark_app.Createdataframe (Studenten)
#Display DataFrame
#by Filteralter als 23
drucken (df.Filter (df.Alter == 23).sammeln())
drucken("---------------------------")
#Display DataFrame
#by Filterhöhe als 2.79
drucken (df.Filter (df.Höhe == 2.79).sammeln())
drucken("---------------------------")
#Display DataFrame
#By Filtergewicht größer als 30
drucken (df.Filter (df.Gewicht> 30).sammeln())
drucken("---------------------------")
#Display DataFrame
#-By -Filterungsname als Sravan
drucken (df.Filter (df.Name == 'Sravan').sammeln())

Ausgang:

[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67)]
---------------------------
[Zeile (Adresse = 'Patna', Alter = 7, Höhe = 2.79, name = "gnanesh chowdary", rollno = "003", Gewicht = 17)]
---------------------------
[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67), Row (Adresse = 'Hyd', Alter = 16, Größe = 3.79, name = "ojaswi", rollno = "002", Gewicht = 34), Row (Adresse = 'Hyd', Alter = 37, Höhe = 5.59, name = "sridevi", rollno = "005", Gewicht = 54)]
---------------------------
[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67)]

Methode - 2: filter () mit relationalen Operatoren mithilfe der Col -Funktion

Hier verwenden wir die Funktion filter (), um den PYSPARK -Datenrahmen mit relationalen Operatoren wie> zu filtern, < . == etc. through col function.

Syntax:

Datenrahmen.filter (col ("column_name") Bedienerwert)

Hier, wo () akzeptiert drei Parameter.

  1. Datenrahmen.column_name ist die Spalte, in der Filterung angewendet wird.
  2. Operator ist der relationale Operator.
  3. Wert ist der Zeichenfolge/numerische Wert im Vergleich zu Spaltenwerten.

Beispiel:

In diesem Beispiel werden wir den Datenrahmen basierend auf den Spalten von Alter, Größe, Gewicht und Namen mit verschiedenen relationalen Operatoren filtern und die gefilterten Zeilen mit der Methode Collect () anzeigen.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#Importieren Sie die Col -Funktion
aus pysspark.sql.Funktionen importieren col
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie Studentendaten mit 5 Zeilen und 6 Attributen
Schüler = [
'Rollno': '001', 'Name': 'Sravan', 'Alter': 23,
'Höhe': 5.79, 'Gewicht': 67, 'Adresse': 'Guntur',
'Rollno': '002', 'Name': 'Ojaswi', 'Age': 16,
'Höhe': 3.79, 'Gewicht': 34, 'Adresse': 'Hyd',
'Rollno': '003', 'Name': 'Gnanesh Chowdary', 'Age': 7,
'Höhe': 2.79, 'Gewicht': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Name': 'Rohith', 'Alter': 9,
'Höhe': 3.69, 'Gewicht': 28, 'Adresse': 'Hyd',
'Rollno': '005', 'Name': 'Sridevi', 'Age': 37,
'Höhe': 5.59, 'Gewicht': 54, 'Adresse': 'Hyd']
# Erstellen Sie den Datenrahmen
df = spark_app.Createdataframe (Studenten)
#Display DataFrame
#by Filteralter als 23
drucken (df.Filter (col ('Alter') == 23).sammeln())
drucken("---------------------------")
#Display DataFrame
#by Filterhöhe als 2.79
drucken (df.Filter (col ('Höhe') == 2.79).sammeln())
drucken("---------------------------")
#Display DataFrame
#By Filtergewicht größer als 30
drucken (df.Filter (col ('Gewicht')> 30).sammeln())
drucken("---------------------------")
#Display DataFrame
#-By -Filterungsname als Sravan
drucken (df.filter (col ('name') == 'sravan').sammeln())

Ausgang:

[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67)]
---------------------------
[Zeile (Adresse = 'Patna', Alter = 7, Höhe = 2.79, name = "gnanesh chowdary", rollno = "003", Gewicht = 17)]
---------------------------
[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67), Row (Adresse = 'Hyd', Alter = 16, Größe = 3.79, name = "ojaswi", rollno = "002", Gewicht = 34), Row (Adresse = 'Hyd', Alter = 37, Höhe = 5.59, name = "sridevi", rollno = "005", Gewicht = 54)]
---------------------------
[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67)]

Methode - 3: filter () mit relationalen Operatoren unter mehreren Bedingungen

Hier verwenden wir die Funktion filter (), um den PYSPARK -Datenrahmen mit relationalen Operatoren wie> zu filtern, < . == etc with multiple conditions.

Syntax:

Datenrahmen.Filter ((Conditin1) Operator (Zustand2)… .)

Hier akzeptiert Filter () drei Parameter.

  1. Datenrahmen.column_name ist die Spalte, in der Filterung angewendet wird.
  2. Operator ist der relationale Operator.
  3. Wert ist der Zeichenfolge/numerische Wert im Vergleich zu Spaltenwerten.
  4. Bedingung gibt - (DataFrame "an.Spalten_Name -Operatorwert).

Beispiel:

In diesem Beispiel werden wir den Datenrahmen basierend auf der Altersspalte mit OR (|) und (&) -Operator filtern und die gefilterten Zeilen mit der Methode Collect () anzeigen.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#Importieren Sie die Col -Funktion
aus pysspark.sql.Funktionen importieren col
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie Studentendaten mit 5 Zeilen und 6 Attributen
Schüler = [
'Rollno': '001', 'Name': 'Sravan', 'Alter': 23,
'Höhe': 5.79, 'Gewicht': 67, 'Adresse': 'Guntur',
'Rollno': '002', 'Name': 'Ojaswi', 'Age': 16,
'Höhe': 3.79, 'Gewicht': 34, 'Adresse': 'Hyd',
'Rollno': '003', 'Name': 'Gnanesh Chowdary', 'Age': 7,
'Höhe': 2.79, 'Gewicht': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Name': 'Rohith', 'Alter': 9,
'Höhe': 3.69, 'Gewicht': 28, 'Adresse': 'Hyd',
'Rollno': '005', 'Name': 'Sridevi', 'Age': 37,
'Höhe': 5.59, 'Gewicht': 54, 'Adresse': 'Hyd']
# Erstellen Sie den Datenrahmen
df = spark_app.Createdataframe (Studenten)
#Display DataFrame
#BY -Filteralter von mehr als 10 und weniger als 21
drucken (df.Filter ((df.Alter> 10) & (df.Alter <21)).collect())
drucken("---------------------------")
#Display DataFrame
#By Filteralter von mehr als 10 oder weniger als 21
drucken (df.Filter ((df.Alter> 10) | (df.Alter <21)).collect())

Ausgang:

[Zeile (Adresse = 'Hyd', Alter = 16, Höhe = 3.79, name = "ojaswi", rollno = "002", Gewicht = 34)]
---------------------------
[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67), Row (Adresse = 'Hyd', Alter = 16, Größe = 3.79, name = "ojaswi", rollno = "002", Gewicht = 34), Row (Adresse = 'patna', Alter = 7, Größe = 2.79, name = "gnanesh chowdary", rollno = "003", Gewicht = 17), Zeile (Adresse = 'Hyd', Alter = 9, Größe = 3.69, name = "Rohith", rollno = "004", Gewicht = 28), Row (Adresse = 'Hyd', Alter = 37, Größe = 5.59, name = "sridevi", rollno = "005", Gewicht = 54)]

Methode - 4: filter () mit SQL -Expression

Hier verwenden wir die Funktion filter (), um den pyspark -Datenrahmen mit SQL -Expression zu filtern. Der Zustand ist von "" umgeben ". Wir können jedoch den relationalen Operator als Bedingung angeben.

Syntax:

Datenrahmen.Filter (“DataFrame.Spalten_Name -Operatorwert ”)

Hier akzeptiert Filter () drei Parameter.

  1. Datenrahmen.column_name ist die Spalte, in der Filterung angewendet wird.
  2. Operator ist der relationale Operator.
  3. Wert ist der Zeichenfolge/numerische Wert im Vergleich zu Spaltenwerten.

Beispiel:

In diesem Beispiel werden wir den Datenrahmen basierend auf den Spalten von Alter, Größe, Gewicht und Namen mit verschiedenen relationalen Operatoren filtern und die gefilterten Zeilen mit der Methode Collect () anzeigen.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#Importieren Sie die Col -Funktion
aus pysspark.sql.Funktionen importieren col
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie Studentendaten mit 5 Zeilen und 6 Attributen
Schüler = [
'Rollno': '001', 'Name': 'Sravan', 'Alter': 23,
'Höhe': 5.79, 'Gewicht': 67, 'Adresse': 'Guntur',
'Rollno': '002', 'Name': 'Ojaswi', 'Age': 16,
'Höhe': 3.79, 'Gewicht': 34, 'Adresse': 'Hyd',
'Rollno': '003', 'Name': 'Gnanesh Chowdary', 'Age': 7,
'Höhe': 2.79, 'Gewicht': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Name': 'Rohith', 'Alter': 9,
'Höhe': 3.69, 'Gewicht': 28, 'Adresse': 'Hyd',
'Rollno': '005', 'Name': 'Sridevi', 'Age': 37,
'Höhe': 5.59, 'Gewicht': 54, 'Adresse': 'Hyd']
# Erstellen Sie den Datenrahmen
df = spark_app.Createdataframe (Studenten)
#Display DataFrame
#by Filteralter als 23
#Verwendung von SQL -Ausdruck
drucken (df.Filter ("Alter == 23").sammeln())
drucken("---------------------------")
#Display DataFrame
#by Filterhöhe als 2.79
#Verwendung von SQL -Ausdruck
drucken (df.filter ("Höhe == 2.79 ").sammeln())
drucken("---------------------------")
#Display DataFrame
#By Filtergewicht größer als 30
#Verwendung von SQL -Ausdruck
drucken (df.Filter ("Gewicht> 30").sammeln())
drucken("---------------------------")
#Display DataFrame
#-By -Filterungsname als Sravan
#Verwendung von SQL -Ausdruck
drucken (df.filter ("name == 'sravan'")).sammeln())

Ausgang:

[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67)]
---------------------------
[Zeile (Adresse = 'Patna', Alter = 7, Höhe = 2.79, name = "gnanesh chowdary", rollno = "003", Gewicht = 17)]
---------------------------
[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67), Row (Adresse = 'Hyd', Alter = 16, Größe = 3.79, name = "ojaswi", rollno = "002", Gewicht = 34), Row (Adresse = 'Hyd', Alter = 37, Höhe = 5.59, name = "sridevi", rollno = "005", Gewicht = 54)]
---------------------------
[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67)]

Methode - 4: filter () mit String -Methoden

Hier verwenden wir die Funktion filter (), um den PYSPARK -Datenrahmen mit String -Methoden zu filtern. Diese werden in den Spalten angewendet, deren Datentyp String ist. Sie sind:

beginnt mit() - Überprüfen Sie das Startcharakter in den angegebenen Daten

Syntax:

Datenrahmen.Filter (DataFrame.Spaltenname.starten ("Charakter")

Hier Spaltenname ist die Spalte, in der Filterung angewendet wird, wobei der Wert mit dem angegebenen Zeichen beginnt.

endet mit() - Überprüfen Sie das Endcharakter in den angegebenen Daten.

Syntax:

Datenrahmen.Filter (DataFrame.Spaltenname.Endswith ("Charakter")

Hier Spaltenname ist die Spalte, in der Filterung angewendet wird, wobei der Wert mit dem angegebenen Zeichen endet.

enthält () - Überprüfen Sie den Charakter in den angegebenen Daten.

Syntax:

Datenrahmen.Filter (DataFrame.Spaltenname.enthält ("Charakter")

Hier Spaltenname ist die Spalte, in der Filterung angewendet wird, wobei der Wert mit dem angegebenen Zeichen enthält.

Beispiel:

In diesem Beispiel werden wir basierend auf der Adressspalte filtern.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#Importieren Sie die Col -Funktion
aus pysspark.sql.Funktionen importieren col
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie Studentendaten mit 5 Zeilen und 6 Attributen
Schüler = [
'Rollno': '001', 'Name': 'Sravan', 'Alter': 23,
'Höhe': 5.79, 'Gewicht': 67, 'Adresse': 'Guntur',
'Rollno': '002', 'Name': 'Ojaswi', 'Age': 16,
'Höhe': 3.79, 'Gewicht': 34, 'Adresse': 'Hyd',
'Rollno': '003', 'Name': 'Gnanesh Chowdary', 'Age': 7,
'Höhe': 2.79, 'Gewicht': 17, 'Adresse': 'Patna',
'Rollno': '004', 'Name': 'Rohith', 'Alter': 9,
'Höhe': 3.69, 'Gewicht': 28, 'Adresse': 'Hyd',
'Rollno': '005', 'Name': 'Sridevi', 'Age': 37,
'Höhe': 5.59, 'Gewicht': 54, 'Adresse': 'Hyd']
# Erstellen Sie den Datenrahmen
df = spark_app.Createdataframe (Studenten)
#Display DataFrame
#by Filteradresse
#Starts mit 'H'
drucken (df.Filter (df.Adresse.starten ("h")).sammeln())
drucken("-----------------")
#Display DataFrame
#by Filteradresse
#ends mit 'r'
drucken (df.Filter (df.Adresse.Endswith ("R")).sammeln())
drucken("-----------------")
#Display DataFrame
#by Filteradresse
#comntains 'tu'
drucken (df.Filter (df.Adresse.enthält ("r")).sammeln())

Ausgang:

[Zeile (Adresse = 'Hyd', Alter = 16, Höhe = 3.79, name = "ojaswi", rollno = "002", Gewicht = 34), Row (Adresse = 'Hyd', Alter = 9, Größe = 3.69, name = "Rohith", rollno = "004", Gewicht = 28), Row (Adresse = 'Hyd', Alter = 37, Größe = 5.59, name = "sridevi", rollno = "005", Gewicht = 54)]
-----------------
[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67)]
-----------------
[Zeile (Adresse = 'Guntur', Alter = 23, Höhe = 5.79, name = "sravan", rollno = "001", Gewicht = 67)]

Abschluss

In diesem Artikel haben wir besprochen, wie eine Filter () -Funktion mit mehreren Methoden auf dem PYSPARK -Datenframe in Python verwendet wird. Und wir haben auch alle Bedingungen mit SQL -Ausdrücken aufgenommen.