Pyspark.sql.DataFrame.selectExpr()
A selectexpr() függvény veszi az oszlopokat/kifejezéskészleteket, és a megadott kifejezések/oszlopok alapján adja vissza a DataFrame-et. Ebben a függvényben több kifejezés is megadható, amelyeket vesszővel kell elválasztani. A DataFrame megjelenítéséhez a show()/collect() függvényeket használhatjuk.
Szintaxis:
pyspark_DataFrame_object.selectExpr('Oszlopok'/'Kifejezések')
Itt a pyspark_DataFrame_object a bemeneti PySpark DataFrame.
1. forgatókönyv: Válassza ki az oszlopokat
Ebben a forgatókönyvben látni fogjuk, hogyan választhatjuk ki az adott oszlopokat a PySpark DataFrame-ből a selectExpr() függvény segítségével.
A használt kifejezés a „meglévő_oszlop új_névként”. Itt a létező_oszlop az az oszlopnév, amely a DataFrame-ben található, és új_névként (Aliasing) jelenik meg.
Példa:
Hozzon létre egy „agri_df” nevű PySpark DataFrame-et 5 sorból és oszlopból. Szerezze be a „Soil_status” és „Soil_Type” oszlopot „STATUS” és „TYPE” néven.
import pysparka pyspark.sql-ből importálja a SparkSession-t
linuxhint_spark_app = SparkSession.builder.appName( 'Linux tipp' ).getOrCreate()
# gazdálkodási adatok 5 sorból és 5 oszlopból
agri =[{ 'Soil_Type' : 'Fekete' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 2500 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'EGYESÜLT ÁLLAMOK' },
{ 'Soil_Type' : 'Fekete' , 'öntözési_elérhetőség' : 'Igen' , 'Acres' : 3500 , 'talaj_állapota' : 'Nedves' ,
'Ország' : 'India' },
{ 'Soil_Type' : Egyik sem , 'öntözési_elérhetőség' : 'Igen' , 'Acres' : 210 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'UK' },
{ 'Soil_Type' : 'Egyéb' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 1000 , 'talaj_állapota' : 'Nedves' ,
'Ország' : 'EGYESÜLT ÁLLAMOK' },
{ 'Soil_Type' : 'Homok' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 500 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'India' }]
# hozza létre az adatkeretet a fenti adatokból
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Szerezze be a Soil_status és Soil_Type értékeket 'STATUS' és 'TYPE' néven.
agri_df.selectExpr( 'Soil_status as STATUS' , 'Soil_Type mint TYPE' ).előadás()
Kimenet:
2. forgatókönyv: A feltételes kifejezések megadása
Ebben a forgatókönyvben látni fogjuk, hogyan értékeljük ki a selectExpr() függvényen belüli feltételeket.
A használt kifejezés a „meglévő_oszlop operátorérték”. Itt a létező_oszlop a DataFrame-ben található oszlopnév, és az oszlopban lévő értékeket összehasonlítjuk a karakterlánccal/értékkel.
1. példa:
Ellenőrizze, hogy az ország „USA”-e vagy sem. Itt az egyenlő (=) operátort használjuk.
import pysparka pyspark.sql-ből importálja a SparkSession-t
linuxhint_spark_app = SparkSession.builder.appName( 'Linux tipp' ).getOrCreate()
# gazdálkodási adatok 5 sorból és 5 oszlopból
agri =[{ 'Soil_Type' : 'Fekete' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 2500 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'EGYESÜLT ÁLLAMOK' },
{ 'Soil_Type' : 'Fekete' , 'öntözési_elérhetőség' : 'Igen' , 'Acres' : 3500 , 'talaj_állapota' : 'Nedves' ,
'Ország' : 'India' },
{ 'Soil_Type' : Egyik sem , 'öntözési_elérhetőség' : 'Igen' , 'Acres' : 210 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'UK' },
{ 'Soil_Type' : 'Egyéb' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 1000 , 'talaj_állapota' : 'Nedves' ,
'Ország' : 'EGYESÜLT ÁLLAMOK' },
{ 'Soil_Type' : 'Homok' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 500 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'India' }]
# hozza létre az adatkeretet a fenti adatokból
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Ellenőrizze, hogy az ország „USA”-e vagy sem.
agri_df.selectExpr( 'Ország = 'USA' ).előadás()
Kimenet:
2. példa:
Ellenőrizze, hogy a Soil_Type értéke NULL-e vagy sem. A NULL kulcsszó ellenőrzi, hogy az érték NULL-e vagy sem. Ha ez nulla, akkor igazat ad vissza. Ellenkező esetben false kerül visszaadásra. A végső kifejezés a „Soil_Type IS NULL”
import pysparka pyspark.sql-ből importálja a SparkSession-t
linuxhint_spark_app = SparkSession.builder.appName( 'Linux tipp' ).getOrCreate()
# gazdálkodási adatok 5 sorból és 5 oszlopból
agri =[{ 'Soil_Type' : 'Fekete' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 2500 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'EGYESÜLT ÁLLAMOK' },
{ 'Soil_Type' : 'Fekete' , 'öntözési_elérhetőség' : 'Igen' , 'Acres' : 3500 , 'talaj_állapota' : 'Nedves' ,
'Ország' : 'India' },
{ 'Soil_Type' : Egyik sem , 'öntözési_elérhetőség' : 'Igen' , 'Acres' : 210 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'UK' },
{ 'Soil_Type' : 'Egyéb' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 1000 , 'talaj_állapota' : 'Nedves' ,
'Ország' : 'EGYESÜLT ÁLLAMOK' },
{ 'Soil_Type' : 'Homok' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 500 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'India' }]
# hozza létre az adatkeretet a fenti adatokból
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Ellenőrizze, hogy a Soil_Type értéke NULL-e vagy sem.
agri_df.selectExpr( 'Soil_Type IS NULL' ).előadás()
Kimenet:
3. forgatókönyv: A kifejezések kiértékelése
Ebben a forgatókönyvben látni fogjuk, hogyan kell megadni a matematikai kifejezéseket. A használt kifejezés a „meglévő_oszlop matematikai_kifejezés”.
Példa:
- Jelenítse meg a tényleges „Acres” oszlopot.
- Adjon hozzá 100-at az „Acres” oszlophoz.
- Vonjon le 100-at az „Acres” oszlopból.
- Szorozzuk meg 100-zal az „Acres” oszlopot.
- Ossza el az „Acres” oszlopot 100-zal.
a pyspark.sql-ből importálja a SparkSession-t
linuxhint_spark_app = SparkSession.builder.appName( 'Linux tipp' ).getOrCreate()
# gazdálkodási adatok 5 sorból és 5 oszlopból
agri =[{ 'Soil_Type' : 'Fekete' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 2500 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'EGYESÜLT ÁLLAMOK' },
{ 'Soil_Type' : 'Fekete' , 'öntözési_elérhetőség' : 'Igen' , 'Acres' : 3500 , 'talaj_állapota' : 'Nedves' ,
'Ország' : 'India' },
{ 'Soil_Type' : Egyik sem , 'öntözési_elérhetőség' : 'Igen' , 'Acres' : 210 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'UK' },
{ 'Soil_Type' : 'Egyéb' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 1000 , 'talaj_állapota' : 'Nedves' ,
'Ország' : 'EGYESÜLT ÁLLAMOK' },
{ 'Soil_Type' : 'Homok' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 500 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'India' }]
# hozza létre az adatkeretet a fenti adatokból
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Írjon 4 kifejezést az Acres oszlop kivonásához, összeadásához, osztásához és szorzásához.
agri_df.selectExpr( 'Acres' , 'Acres - 100' , 'Acres * 100' , 'Acres + 100' , 'Acres / 100' ).előadás()
Kimenet:
4. forgatókönyv: Az összesített függvények alkalmazása
SZUM(oszlop_neve) – A megadott oszlopban lévő összértéket értékeli.
MEAN(oszlop_neve) – A megadott oszlop átlagértékét értékeli.
MIN(oszlop_neve) – A megadott oszlopban lévő összes elem közül a minimális elemet adja vissza.
MAX(oszlop_neve) – A megadott oszlopban lévő összes elem közül a maximális elemet adja vissza.
Példa:
- Keresse meg az „Acres” összes, átlagos, számszerű, minimális és maximális elemét.
- Keresse meg a minimális és maximális elemeket a „Soil_status” oszlopban.
a pyspark.sql-ből importálja a SparkSession-t
linuxhint_spark_app = SparkSession.builder.appName( 'Linux tipp' ).getOrCreate()
# gazdálkodási adatok 5 sorból és 5 oszlopból
agri =[{ 'Soil_Type' : 'Fekete' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 2500 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'EGYESÜLT ÁLLAMOK' },
{ 'Soil_Type' : 'Fekete' , 'öntözési_elérhetőség' : 'Igen' , 'Acres' : 3500 , 'talaj_állapota' : 'Nedves' ,
'Ország' : 'India' },
{ 'Soil_Type' : Egyik sem , 'öntözési_elérhetőség' : 'Igen' , 'Acres' : 210 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'UK' },
{ 'Soil_Type' : 'Egyéb' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 1000 , 'talaj_állapota' : 'Nedves' ,
'Ország' : 'EGYESÜLT ÁLLAMOK' },
{ 'Soil_Type' : 'Homok' , 'öntözési_elérhetőség' : 'Nem' , 'Acres' : 500 , 'talaj_állapota' : 'Száraz' ,
'Ország' : 'India' }]
# hozza létre az adatkeretet a fenti adatokból
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Összesített műveletek
agri_df.selectExpr( 'SZUM (Acres)' , 'MEAN (Acres)' , 'COUNT(Acres)' , 'AVG (Acres)' , 'MIN (Acres)' ,
'MAX (Acres)' ).előadás()
agri_df.selectExpr( 'MIN(talaj állapota)' , 'MAX(talaj állapota)' ).előadás()
Kimenet:
Következtetés
Beszéltünk a selectExpr() függvényről, amely az oszlopokat/kifejezéskészleteket veszi, és a megadott kifejezések/oszlopok alapján adja vissza a DataFrame-et. Ennek részeként megismertük a négy fő forgatókönyvet, amelyekben a selectExpr() alkalmazható. Ebben a függvényben több kifejezés is megadható, amelyek vesszővel vannak elválasztva. A selectExpr() függvény használatához nincs szükség IDEIGLENES NÉZET létrehozására.