Pyspark.sql.DataFrame.selectExpr()
Die Funktion selectexpr() übernimmt die Spalten/Ausdruckssätze und gibt den DataFrame basierend auf den angegebenen Ausdrücken/Spalten zurück. In dieser Funktion können mehrere Ausdrücke angegeben werden, die durch Komma getrennt werden. Um den DataFrame anzuzeigen, können wir die Funktionen show()/collect() verwenden.
Syntax:
pyspark_DataFrame_object.selectExpr(„Spalten“/„Ausdrücke“)
Hier ist das pyspark_DataFrame_object der Eingabe-PySpark-DataFrame.
Szenario 1: Wählen Sie die Spalten aus
In diesem Szenario erfahren Sie, wie Sie mithilfe der Funktion selectExpr() bestimmte Spalten aus dem PySpark-DataFrame auswählen.
Der verwendete Ausdruck ist „existing_column as new_name“. Hier ist „existierende Spalte“ der Spaltenname, der im DataFrame vorhanden ist, und wird als „neuer_Name“ (Aliasing) angezeigt.
Beispiel:
Erstellen Sie einen PySpark-DataFrame mit dem Namen „agri_df“ mit 5 Zeilen und Spalten. Rufen Sie die Spalten „Soil_status“ und „Soil_Type“ als „STATUS“ und „TYPE“ ab.
Pyspark importierenaus pyspark.sql SparkSession importieren
linuxhint_spark_app = SparkSession.builder.appName( „Linux-Hinweis“ ).getOrCreate()
# Landwirtschaftsdaten mit 5 Zeilen und 5 Spalten
agri =[{ 'Bodenart' : 'Schwarz' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 2500 , 'Soil_status' : 'Trocken' ,
'Land' : 'USA' },
{ 'Bodenart' : 'Schwarz' , „Bewässerungsverfügbarkeit“ : 'Ja' , 'Acres' : 3500 , 'Soil_status' : 'Nass' ,
'Land' : 'Indien' },
{ 'Bodenart' : Keiner , „Bewässerungsverfügbarkeit“ : 'Ja' , 'Acres' : 210 , 'Soil_status' : 'Trocken' ,
'Land' : 'VEREINIGTES KÖNIGREICH' },
{ 'Bodenart' : 'Andere' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 1000 , 'Soil_status' : 'Nass' ,
'Land' : 'USA' },
{ 'Bodenart' : 'Sand' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 500 , 'Soil_status' : 'Trocken' ,
'Land' : 'Indien' }]
# Erstellen Sie den Datenrahmen aus den oben genannten Daten
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Holen Sie sich Soil_status und Soil_Type als „STATUS“ und „TYPE“.
agri_df.selectExpr( „Soil_status als STATUS“ , „Soil_Type als TYPE“ ).zeigen()
Ausgang:
Szenario 2: Angeben der bedingten Ausdrücke
In diesem Szenario werden wir sehen, wie die Bedingungen innerhalb der Funktion selectExpr() ausgewertet werden.
Der verwendete Ausdruck ist „vorhandener_Spaltenoperatorwert“. Hier ist „existierende_Spalte“ der Spaltenname, der im DataFrame vorhanden ist, und wir vergleichen jeden Wert in dieser Spalte mit der Zeichenfolge/dem Wert.
Beispiel 1:
Überprüfen Sie, ob das Land „USA“ ist oder nicht. Hier wird der Gleichheitsoperator (=) verwendet.
Pyspark importierenaus pyspark.sql SparkSession importieren
linuxhint_spark_app = SparkSession.builder.appName( „Linux-Hinweis“ ).getOrCreate()
# Landwirtschaftsdaten mit 5 Zeilen und 5 Spalten
agri =[{ 'Bodenart' : 'Schwarz' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 2500 , 'Soil_status' : 'Trocken' ,
'Land' : 'USA' },
{ 'Bodenart' : 'Schwarz' , „Bewässerungsverfügbarkeit“ : 'Ja' , 'Acres' : 3500 , 'Soil_status' : 'Nass' ,
'Land' : 'Indien' },
{ 'Bodenart' : Keiner , „Bewässerungsverfügbarkeit“ : 'Ja' , 'Acres' : 210 , 'Soil_status' : 'Trocken' ,
'Land' : 'VEREINIGTES KÖNIGREICH' },
{ 'Bodenart' : 'Andere' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 1000 , 'Soil_status' : 'Nass' ,
'Land' : 'USA' },
{ 'Bodenart' : 'Sand' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 500 , 'Soil_status' : 'Trocken' ,
'Land' : 'Indien' }]
# Erstellen Sie den Datenrahmen aus den oben genannten Daten
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Überprüfen Sie, ob das Land „USA“ ist oder nicht.
agri_df.selectExpr( „Land = ‚USA‘“ ).zeigen()
Ausgang:
Beispiel 2:
Überprüfen Sie, ob Soil_Type NULL ist oder nicht. Das Schlüsselwort NULL prüft, ob der Wert NULL ist oder nicht. Wenn es null ist, wird true zurückgegeben. Andernfalls wird false zurückgegeben. Der letzte Ausdruck ist „Soil_Type IS NULL“
Pyspark importierenaus pyspark.sql SparkSession importieren
linuxhint_spark_app = SparkSession.builder.appName( „Linux-Hinweis“ ).getOrCreate()
# Landwirtschaftsdaten mit 5 Zeilen und 5 Spalten
agri =[{ 'Bodenart' : 'Schwarz' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 2500 , 'Soil_status' : 'Trocken' ,
'Land' : 'USA' },
{ 'Bodenart' : 'Schwarz' , „Bewässerungsverfügbarkeit“ : 'Ja' , 'Acres' : 3500 , 'Soil_status' : 'Nass' ,
'Land' : 'Indien' },
{ 'Bodenart' : Keiner , „Bewässerungsverfügbarkeit“ : 'Ja' , 'Acres' : 210 , 'Soil_status' : 'Trocken' ,
'Land' : 'VEREINIGTES KÖNIGREICH' },
{ 'Bodenart' : 'Andere' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 1000 , 'Soil_status' : 'Nass' ,
'Land' : 'USA' },
{ 'Bodenart' : 'Sand' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 500 , 'Soil_status' : 'Trocken' ,
'Land' : 'Indien' }]
# Erstellen Sie den Datenrahmen aus den oben genannten Daten
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Überprüfen Sie, ob der Soil_Type NULL ist oder nicht.
agri_df.selectExpr( „Soil_Type IST NULL“ ).zeigen()
Ausgang:
Szenario 3: Auswerten der Ausdrücke
In diesem Szenario werden wir sehen, wie man die mathematischen Ausdrücke angibt. Der verwendete Ausdruck ist „vorhandener_Spaltenmathematischer_Ausdruck“.
Beispiel:
- Zeigt die aktuelle Spalte „Acres“ an.
- Addieren Sie 100 zur Spalte „Acres“.
- Subtrahieren Sie 100 von der Spalte „Acres“.
- Multiplizieren Sie 100 mit der Spalte „Acres“.
- Teilen Sie die Spalte „Acres“ durch 100.
aus pyspark.sql SparkSession importieren
linuxhint_spark_app = SparkSession.builder.appName( „Linux-Hinweis“ ).getOrCreate()
# Landwirtschaftsdaten mit 5 Zeilen und 5 Spalten
agri =[{ 'Bodenart' : 'Schwarz' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 2500 , 'Soil_status' : 'Trocken' ,
'Land' : 'USA' },
{ 'Bodenart' : 'Schwarz' , „Bewässerungsverfügbarkeit“ : 'Ja' , 'Acres' : 3500 , 'Soil_status' : 'Nass' ,
'Land' : 'Indien' },
{ 'Bodenart' : Keiner , „Bewässerungsverfügbarkeit“ : 'Ja' , 'Acres' : 210 , 'Soil_status' : 'Trocken' ,
'Land' : 'VEREINIGTES KÖNIGREICH' },
{ 'Bodenart' : 'Andere' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 1000 , 'Soil_status' : 'Nass' ,
'Land' : 'USA' },
{ 'Bodenart' : 'Sand' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 500 , 'Soil_status' : 'Trocken' ,
'Land' : 'Indien' }]
# Erstellen Sie den Datenrahmen aus den oben genannten Daten
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Schreiben Sie 4 Ausdrücke, um die Acres-Spalte zu subtrahieren, zu addieren, zu dividieren und zu multiplizieren.
agri_df.selectExpr( „Acres“ , „Acres – 100“ , „Acres * 100“ , „Morgen + 100“ , „Acres / 100“ ).zeigen()
Ausgang:
Szenario 4: Anwenden der Aggregatfunktionen
SUM(Spaltenname) – Es wertet den Gesamtwert in der angegebenen Spalte aus.
MEAN(Spaltenname) – Es wertet den Durchschnittswert in der angegebenen Spalte aus.
MIN(Spaltenname) – Es gibt das kleinste Element unter allen Elementen in der angegebenen Spalte zurück.
MAX(Spaltenname) – Es gibt das maximale Element unter allen Elementen in der angegebenen Spalte zurück.
Beispiel:
- Finden Sie die Gesamt-, Durchschnitts-, Anzahl-, Mindest- und Höchstelemente von „Acres“.
- Finden Sie die minimalen und maximalen Elemente in der Spalte „Soil_status“.
aus pyspark.sql SparkSession importieren
linuxhint_spark_app = SparkSession.builder.appName( „Linux-Hinweis“ ).getOrCreate()
# Landwirtschaftsdaten mit 5 Zeilen und 5 Spalten
agri =[{ 'Bodenart' : 'Schwarz' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 2500 , 'Soil_status' : 'Trocken' ,
'Land' : 'USA' },
{ 'Bodenart' : 'Schwarz' , „Bewässerungsverfügbarkeit“ : 'Ja' , 'Acres' : 3500 , 'Soil_status' : 'Nass' ,
'Land' : 'Indien' },
{ 'Bodenart' : Keiner , „Bewässerungsverfügbarkeit“ : 'Ja' , 'Acres' : 210 , 'Soil_status' : 'Trocken' ,
'Land' : 'VEREINIGTES KÖNIGREICH' },
{ 'Bodenart' : 'Andere' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 1000 , 'Soil_status' : 'Nass' ,
'Land' : 'USA' },
{ 'Bodenart' : 'Sand' , „Bewässerungsverfügbarkeit“ : 'NEIN' , 'Acres' : 500 , 'Soil_status' : 'Trocken' ,
'Land' : 'Indien' }]
# Erstellen Sie den Datenrahmen aus den oben genannten Daten
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Aggregierte Operationen
agri_df.selectExpr( „SUMME(Acres)“ , „MEAN(Acres)“ , „ANZAHL(Acres)“ , „AVG(Acres)“ , „MIN(Acres)“ ,
„MAX(Acres)“ ).zeigen()
agri_df.selectExpr( „MIN(Soil_status)“ , „MAX(Soil_status)“ ).zeigen()
Ausgang:
Abschluss
Wir haben über die Funktion selectExpr() gesprochen, die die Spalten/Ausdruckssätze übernimmt und den DataFrame basierend auf den angegebenen Ausdrücken/Spalten zurückgibt. Dabei haben wir die vier Hauptszenarien kennengelernt, in denen selectExpr() anwendbar ist. In dieser Funktion können mehrere Ausdrücke angegeben werden, die durch Komma getrennt werden. Es ist nicht erforderlich, eine TEMPORÄRE ANSICHT zu erstellen, um die Funktion selectExpr() zu verwenden.