Pysspark wo Klausel

Pysspark wo Klausel
In Python ist PySpark ein Spark -Modul, mit dem eine ähnliche Art von Verarbeitung wie Spark mit DataFrame bereitgestellt wird. In PYSPARK, wobei () verwendet wird, um die Zeilen im DataFrame zu filtern.
  1. Methode - 1: Wo () mit relationalen Operatoren
  2. Methode - 2: WO () mit relationalen Operatoren mit Col -Funktion
  3. Methode - 3: WO () mit relationalen Operatoren unter mehreren Bedingungen
  4. Methode - 4: WO () mit SQL -Ausdruck
  5. Methode - 5: WO () mit String -Methoden

Erstellen wir einen PYSPARK -Datenframe:

Beispiel:

In diesem Beispiel wird der PYSPARK -Datenframe mit 5 Zeilen und 6 Spalten erstellt und mit der Methode show () angezeigt.

#Amportieren Sie das PySpAPRK -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: Wo () mit relationalen Operatoren

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

Syntax:

Datenrahmen.Wo (DataFrame.Spalten_Name -Operatorwert)

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 filtern wir den DataFrame basierend auf den Spalten von Alter, Größe, Gewicht und Namen mit unterschiedlichen relationalen Operatoren und zeigen die gefilterten Zeilen mit der Methode Collect () an.

#Amportieren Sie das PySpAPRK -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.wo (df.Alter == 23).sammeln())
drucken("---------------------------")
#Display DataFrame
#by Filterhöhe als 2.79
drucken (df.wo (df.Höhe == 2.79).sammeln())
drucken("---------------------------")
#Display DataFrame
#By Filtergewicht größer als 30
drucken (df.wo (df.Gewicht> 30).sammeln())
drucken("---------------------------")
#Display DataFrame
#-By -Filterungsname als Sravan
drucken (df.wo (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), Zeile (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: WO () mit relationalen Operatoren mit Col -Funktion

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

Syntax:

Datenrahmen.WO (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 filtern wir den DataFrame basierend auf den Spalten von Alter, Größe, Gewicht und Namen mit unterschiedlichen relationalen Operatoren und zeigen die gefilterten Zeilen mit der Methode Collect () an.

#Amportieren Sie das PySpAPRK -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.wo (col ('Alter') == 23).sammeln())
drucken("---------------------------")
#Display DataFrame
#by Filterhöhe als 2.79
drucken (df.wo (col ('Höhe') == 2.79).sammeln())
drucken("---------------------------")
#Display DataFrame
#By Filtergewicht größer als 30
drucken (df.wo (col ('Gewicht')> 30).sammeln())
drucken("---------------------------")
#Display DataFrame
#-By -Filterungsname als Sravan
drucken (df.wo (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), Zeile (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: WO () mit relationalen Operatoren unter mehreren Bedingungen

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

Syntax:

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

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
  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 mithilfe der Methode Collect () anzeigen.

#Amportieren Sie das PySpAPRK -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.wo ((df.Alter> 10) & (df.Alter <21)).collect())
drucken("---------------------------")
#Display DataFrame
#By Filteralter von mehr als 10 oder weniger als 21
drucken (df.wo ((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), Zeile (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), Zeile (Adresse = 'Hyd', Alter = 37, Größe = 5.59, name = 'sridevi', rollno = '005', Gewicht = 54)]

Methode - 4: WO () mit SQL -Ausdruck

Hier verwenden wir die Funktion Where (), 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.Wo (“Datenframe.Spalten_Name -Operatorwert ”)

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 filtern wir den DataFrame basierend auf den Spalten von Alter, Größe, Gewicht und Namen mit unterschiedlichen relationalen Operatoren und zeigen die gefilterten Zeilen mit der Methode Collect () an.

#Amportieren Sie das PySpAPRK -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.wo ("Alter == 23").sammeln())
drucken("---------------------------")
#Display DataFrame
#by Filterhöhe als 2.79
#Verwendung von SQL -Ausdruck
drucken (df.wo ("Höhe == 2.79 ").sammeln())
drucken("---------------------------")
#Display DataFrame
#By Filtergewicht größer als 30
#Verwendung von SQL -Ausdruck
drucken (df.wo ("Gewicht> 30").sammeln())
drucken("---------------------------")
#Display DataFrame
#-By -Filterungsname als Sravan
#Verwendung von SQL -Ausdruck
drucken (df.wo ("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), Zeile (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 - 5: WO () mit String -Methoden

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

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

Syntax:

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

Hier,

column_name 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.Wo (DataFrame.Spaltenname.Endswith ("Charakter")

Hier,

column_name 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.Wo (DataFrame.Spaltenname.enthält ("Charakter")

Hier,

column_name 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 PySpAPRK -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.wo (df.Adresse.starten ("h")).sammeln())
drucken("-----------------")
#Display DataFrame
#by Filteradresse
#ends mit 'r'
drucken (df.wo (df.Adresse.Endswith ("R")).sammeln())
drucken("-----------------")
#Display DataFrame
#by Filteradresse
#comntains 'tu'
drucken (df.wo (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), Zeile (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 wird beschrieben. Und wir haben auch alle Bedingungen mit SQL -Ausdrücken aufgenommen.