In Python ist PySpark ein Spark -Modul, das eine ähnliche Art von Verarbeitung wie Spark unter Verwendung von DataFrame bietet. expr () in pyspark bezieht sich auf einen SQL. expr () kann in vielen Szenarien verwendet werden.
Tatsächliche Syntax
EXPR (SQL Expression)
Es erfordert einen SQL -Ausdruck und führt einige Operationen innerhalb des Ausdrucks durch.
Lassen Sie uns es nacheinander besprechen. Vorher müssen wir einen PYSPark -Datenframe zur Demonstration erstellen.”
Beispiel
Wir erstellen einen Datenrahmen mit 5 Zeilen und 6 Spalten und zeigen ihn mit der Messe () -Methode an.
#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie Studentendaten mit 5 Zeilen und 6 Attributen
Studenten = ['Rollno': '001', 'Name': 'Sravan', 'Alter': 23, 'Höhe': 5.79, 'Gewicht': 67, 'Adresse': 'Guntur',
'Rollno': '002', 'Name': 'Ojaswi', 'Alter': 16, 'Höhe': 3.79, 'Gewicht': 34, 'Adresse': 'Hyd',
'Rollno': '003', 'Name': 'Gnanesh Chowdary', 'Alter': 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
Szenario 1: Verkettung einer oder mehrerer Spalten
In diesem Szenario werden wir eine oder mehrere Spalten im PYSPARK -Datenframe mit EXPR () verkettet.
Es verwendet die Methode withColumn (), um einen neuen Spaltennamen für die Verkettungsspalten zu erstellen.
Syntax
Datenrahmen.WithColumn ("Column_Name", Ausdruck)
Parameter
Es dauert zwei Parameter.
- Erstens ist der Spaltenname als Spaltenname für die verketteten Spalten verwendet
- Der Ausdruck wird unter Verwendung von expr () zur Verkettung von Spalten erstellt.
Hier ist der Ausdruck:
Expr ("Spalte1 || Separator || Spalte2 || Separator '||… || Spalte n")
Hier bezieht sich die Spalte auf die Spaltennamen, die mit einem Separator dazwischen verkettet werden sollen. Es kann jeder Charakter sein, wie Sonderzeichen.
Beispiel
In diesem Beispiel verkettet wir drei Spalten: Rollen Sie keinen Namen und die Adresse, die durch „ -“ getrennt sind, und der Spaltenname für diese verketteten Spalten lautet - “Rollno mit Namen und Adresse.”
#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie Studentendaten mit 5 Zeilen und 6 Attributen
Studenten = ['Rollno': '001', 'Name': 'Sravan', 'Alter': 23, 'Höhe': 5.79, 'Gewicht': 67, 'Adresse': 'Guntur',
'Rollno': '002', 'Name': 'Ojaswi', 'Alter': 16, 'Höhe': 3.79, 'Gewicht': 34, 'Adresse': 'Hyd',
'Rollno': '003', 'Name': 'Gnanesh Chowdary', 'Alter': 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)
#Concate Rollno, Name und Adressspalten uaing expr ()
df.WithColumn ("Rollno mit Namen und Adresse", expr ("rollno || '-' || name || '-' || Adresse")).zeigen()
Ausgang
Wir können sehen, dass Rollno-, Name- und Adressspalten mit dem „-“ Separator verkettet sind.
Szenario 2: Fügen Sie eine neue Spalte hinzu, die auf Bedingungen basiert
Hier werden wir expr () verwenden, um die darin enthaltenen Bedingungen anzugeben und zusammen mit column () die Werte aus den in einer neuen Spalte zurückgegebenen Bedingungen zuzuweisen.
Wir können die Bedingungen mit dem Fall angeben, wann
Struktur
Fall Wann
DANN
Fall Wann
DANN
…
…
ANDERS
ENDE
Im Inneren müssen wir eine Aktion ausführen.
Wenn die Bedingung im Inneren wahr ist, wird der Block ausgeführt. Wenn es fehlschlägt, geht es zum Else -Block und zum Ende.
Diese bedingte Aussage wird innerhalb von expr () als SQL -Ausdruck bereitgestellt.
Syntax
Datenrahmen.WithColumn ("Spalte", expr
Wo,
- Die Spalte ist die neue Spalte, die erstellt wird, und Werte werden basierend auf den Bedingungen in dieser Spalte zugewiesen
- expr () nimmt bei bedingten Logik ein Fall ein
Beispiel
In diesem Beispiel erstellen wir eine neue Spalte - "Upgrade Height" und zuweisen Werte basierend auf den folgenden Bedingungen, die auf die Höhe der Höhenspalte angewendet werden.
Wenn die Höhe größer als 5 ist - weisen Sie 10 in der aktualisierten Höhensäule darüber zu.
Wenn die Höhe weniger als 5 beträgt - zu 5 in der aufgerüsteten Höhensäule darüber zuweisen.
Andernfalls aktualisieren Sie die Höhe der Höhenspalte auf 7 über die Zeilen.
#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie Studentendaten mit 5 Zeilen und 6 Attributen
Studenten = ['Rollno': '001', 'Name': 'Sravan', 'Alter': 23, 'Höhe': 5.79, 'Gewicht': 67, 'Adresse': 'Guntur',
'Rollno': '002', 'Name': 'Ojaswi', 'Alter': 16, 'Höhe': 3.79, 'Gewicht': 34, 'Adresse': 'Hyd',
'Rollno': '003', 'Name': 'Gnanesh Chowdary', 'Alter': 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)
#Inhöhe Spalte
#wenn die Höhe größer als 5 ist - Zuwenden Sie 10 in einer verbesserten Höhenspalte darüber
#wenn die Höhe weniger als 5 ist - zu 5 in einer verbesserten Höhenspalte zuweisen
#andere mit 7 über die Zeilen verbesserten Höhensäule als 7
df.With Column ("Verbesserte Höhe", expr. ("Fall, wenn Höhe> 5 dann 10" +", wenn Höhe <5 THEN 5 ELSE 7 END")).show()
Ausgang
Wir können sehen, dass die Werte in der Spalte „Upgrade Height“ basierend auf den Bedingungen zugewiesen werden.
Szenario 3: Ausführen von arithmetischen Operationen
Es ist möglich, arithmetische Operationen wie Addition, Subtraktion, Multiplikation und Aufteilung mit vorhandenen Spalten mit Expr () durchzuführen.
Hier kann expr () mit einer Auswahlklausel verwendet werden, um die aktualisierten Spalten anzuzeigen.
Syntax
Datenrahmen.select (expr ("Ausdruck"))
Der Ausdruck wird verwendet, um arithmetische Operationen durchzuführen, die sein können:
"Spalte Arithmetic_operator Value als New_Column"
Hier ist die Spalte der Spaltenname, in dem wir arithmetische Operationen ausführen können. Wert ist die Zahl der für jede Zeile in der Spalte hinzugefügte Nummer, und New_Column ist der Spaltenname, der das Ergebnis speichert.
Beispiel
In diesem Beispiel werden wir zwei arithmetische Operationen durchführen - Zugabe und Subtraktion in der Altersspalte.
#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie Studentendaten mit 5 Zeilen und 6 Attributen
Studenten = ['Rollno': '001', 'Name': 'Sravan', 'Alter': 23, 'Höhe': 5.79, 'Gewicht': 67, 'Adresse': 'Guntur',
'Rollno': '002', 'Name': 'Ojaswi', 'Alter': 16, 'Höhe': 3.79, 'Gewicht': 34, 'Adresse': 'Hyd',
'Rollno': '003', 'Name': 'Gnanesh Chowdary', 'Alter': 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)
#add 10 bis altersspalte
df.select (df.Alter, expr ("Alter + 10 als Alter_after_10")).zeigen()
#Subtracttract 10 aus der Altersspalte
df.select (df.Alter, expr ("Alter - 10 als Alter_Before_10")).zeigen()
Ausgang
In der Additionsoperation fügen wir die Altersspalte 10 hinzu und speichern in der Spalte "AGE_AFTER_10".
In der Subtraktionsoperation subtrahieren wir 10 von der Altersspalte und speichern sie in der Spalte „AGE_BEFORE_10“.
Abschluss
In diesem PYSPARK -Tutorial haben wir gesehen, wie Expr () in drei verschiedenen Szenarien verwendet wird. Es kann für bedingte Ausdrücke verwendet werden, kann zur Durchführung arithmetischer Operationen verwendet werden und kann verwendet werden, um mehrere Spalten zu verkettet.