Pyspark.sql.DataFrame.selectExpr()
Funkcija selectexpr() ņem kolonnas/izteiksmju kopu un atgriež DataFrame, pamatojoties uz norādītajām izteiksmēm/kolonnām. Šajā funkcijā var norādīt vairākas izteiksmes, kuras atdala ar komatu. Lai parādītu DataFrame, mēs varam izmantot show()/collect() funkcijas.
Sintakse:
pyspark_DataFrame_object.selectExpr(“Slejas”/”Izteiksmes”)
Šeit pyspark_DataFrame_object ir ievades PySpark DataFrame.
1. scenārijs: atlasiet kolonnas
Šajā scenārijā mēs redzēsim, kā atlasīt konkrētas kolonnas no PySpark DataFrame, izmantojot funkciju selectExpr ().
Izmantotā izteiksme ir “esošā_kolonna kā jauns_nosaukums”. Šeit esošā_kolonna ir kolonnas nosaukums, kas atrodas DataFrame, un tas tiek parādīts kā new_name (Aliasing).
Piemērs:
Izveidojiet PySpark DataFrame ar nosaukumu “agri_df” ar 5 rindām un kolonnām. Iegūstiet kolonnas “Soil_status” un “Soil_Type” kā “STATUSS” un “TYPE”.
importēt pysparkno pyspark.sql importēt SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux padoms' ).getOrCreate()
# lauksaimniecības dati ar 5 rindām un 5 kolonnām
agri =[{ 'augsnes_veids' : 'melns' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 2500 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'ASV' },
{ 'augsnes_veids' : 'melns' , 'Apūdeņošanas_pieejamība' : 'Jā' , 'Acres' : 3500 , Augsnes_statuss : 'slapjš' ,
'Valsts' : 'Indija' },
{ 'augsnes_veids' : Nav , 'Apūdeņošanas_pieejamība' : 'Jā' , 'Acres' : 210 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'UK' },
{ 'augsnes_veids' : 'Cits' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 1000 , Augsnes_statuss : 'slapjš' ,
'Valsts' : 'ASV' },
{ 'augsnes_veids' : 'Smiltis' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 500 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'Indija' }]
# izveidojiet datu rāmi no iepriekšminētajiem datiem
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Iegūstiet augsnes_statusu un augsnes_veidu kā 'STATUSS' un 'TYPE'.
agri_df.selectExpr( 'Augsnes_statuss kā STATUSS' , 'Soil_Type as TYPE' ).show()
Izvade:
2. scenārijs: nosacījumu izteiksmju norādīšana
Šajā scenārijā mēs redzēsim, kā novērtēt nosacījumus funkcijā selectExpr ().
Izmantotā izteiksme ir “existing_column operator value”. Šeit esošā_kolonna ir kolonnas nosaukums, kas atrodas DataFrame, un mēs salīdzinām katru šīs kolonnas vērtību ar virkni/vērtību.
1. piemērs:
Pārbaudiet, vai valsts ir “ASV” vai nē. Šeit tiek izmantots operators vienāds (=).
importēt pysparkno pyspark.sql importēt SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux padoms' ).getOrCreate()
# lauksaimniecības dati ar 5 rindām un 5 kolonnām
agri =[{ 'augsnes_veids' : 'melns' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 2500 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'ASV' },
{ 'augsnes_veids' : 'melns' , 'Apūdeņošanas_pieejamība' : 'Jā' , 'Acres' : 3500 , Augsnes_statuss : 'slapjš' ,
'Valsts' : 'Indija' },
{ 'augsnes_veids' : Nav , 'Apūdeņošanas_pieejamība' : 'Jā' , 'Acres' : 210 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'UK' },
{ 'augsnes_veids' : 'Cits' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 1000 , Augsnes_statuss : 'slapjš' ,
'Valsts' : 'ASV' },
{ 'augsnes_veids' : 'Smiltis' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 500 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'Indija' }]
# izveidojiet datu rāmi no iepriekšminētajiem datiem
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Pārbaudiet, vai valsts ir “ASV” vai nē.
agri_df.selectExpr( 'Valsts = 'ASV' ).show()
Izvade:
2. piemērs:
Pārbaudiet, vai augsnes_veids ir NULL vai nav. NULL atslēgvārds pārbauda, vai vērtība ir NULL vai nav. Ja tas ir nulle, tiek atgriezta patiesība. Pretējā gadījumā tiek atgriezta viltus. Pēdējā izteiksme ir “Soil_Type IS NULL”
importēt pysparkno pyspark.sql importēt SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux padoms' ).getOrCreate()
# lauksaimniecības dati ar 5 rindām un 5 kolonnām
agri =[{ 'augsnes_veids' : 'melns' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 2500 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'ASV' },
{ 'augsnes_veids' : 'melns' , 'Apūdeņošanas_pieejamība' : 'Jā' , 'Acres' : 3500 , Augsnes_statuss : 'slapjš' ,
'Valsts' : 'Indija' },
{ 'augsnes_veids' : Nav , 'Apūdeņošanas_pieejamība' : 'Jā' , 'Acres' : 210 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'UK' },
{ 'augsnes_veids' : 'Cits' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 1000 , Augsnes_statuss : 'slapjš' ,
'Valsts' : 'ASV' },
{ 'augsnes_veids' : 'Smiltis' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 500 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'Indija' }]
# izveidojiet datu rāmi no iepriekšminētajiem datiem
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Pārbaudiet, vai augsnes tips ir NULL vai nav.
agri_df.selectExpr( 'Soil_Type IS NULL' ).show()
Izvade:
3. scenārijs: izteiksmju novērtēšana
Šajā scenārijā mēs redzēsim, kā norādīt matemātiskās izteiksmes. Izmantotā izteiksme ir “esošā_kolonnas matemātiskā_izteiksme”.
Piemērs:
- Parādiet faktisko kolonnu “Acres”.
- Pievienojiet 100 kolonnai “Acres”.
- No kolonnas “Acres” atņemiet 100.
- Reiziniet 100 ar kolonnu “Acres”.
- Sadaliet kolonnu “Acres” ar 100.
no pyspark.sql importēt SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux padoms' ).getOrCreate()
# lauksaimniecības dati ar 5 rindām un 5 kolonnām
agri =[{ 'augsnes_veids' : 'melns' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 2500 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'ASV' },
{ 'augsnes_veids' : 'melns' , 'Apūdeņošanas_pieejamība' : 'Jā' , 'Acres' : 3500 , Augsnes_statuss : 'slapjš' ,
'Valsts' : 'Indija' },
{ 'augsnes_veids' : Nav , 'Apūdeņošanas_pieejamība' : 'Jā' , 'Acres' : 210 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'UK' },
{ 'augsnes_veids' : 'Cits' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 1000 , Augsnes_statuss : 'slapjš' ,
'Valsts' : 'ASV' },
{ 'augsnes_veids' : 'Smiltis' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 500 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'Indija' }]
# izveidojiet datu rāmi no iepriekšminētajiem datiem
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Ierakstiet 4 izteiksmes, lai atņemtu, pievienotu, dalītu un reizinātu Akru kolonnu.
agri_df.selectExpr( 'Acres' , 'Acres - 100' , 'Acres * 100' , 'Acres + 100' , 'Acres / 100' ).show()
Izvade:
4. scenārijs: apkopoto funkciju lietošana
SUM(kolonnas_nosaukums) – Tas novērtē kopējo vērtību norādītajā kolonnā.
MEAN(kolonnas_nosaukums) – Tas novērtē vidējo vērtību norādītajā kolonnā.
MIN(kolonnas_nosaukums) – Tas atgriež minimālo elementu starp visiem elementiem norādītajā kolonnā.
MAX(kolonnas_nosaukums) – Tas atgriež maksimālo elementu starp visiem elementiem norādītajā kolonnā.
Piemērs:
- Atrodiet kopējo, vidējo, skaitu, minimālo un maksimālo elementu 'Acres'.
- Slejā “Soil_status” atrodiet minimālos un maksimālos elementus.
no pyspark.sql importēt SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux padoms' ).getOrCreate()
# lauksaimniecības dati ar 5 rindām un 5 kolonnām
agri =[{ 'augsnes_veids' : 'melns' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 2500 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'ASV' },
{ 'augsnes_veids' : 'melns' , 'Apūdeņošanas_pieejamība' : 'Jā' , 'Acres' : 3500 , Augsnes_statuss : 'slapjš' ,
'Valsts' : 'Indija' },
{ 'augsnes_veids' : Nav , 'Apūdeņošanas_pieejamība' : 'Jā' , 'Acres' : 210 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'UK' },
{ 'augsnes_veids' : 'Cits' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 1000 , Augsnes_statuss : 'slapjš' ,
'Valsts' : 'ASV' },
{ 'augsnes_veids' : 'Smiltis' , 'Apūdeņošanas_pieejamība' : 'Nē' , 'Acres' : 500 , Augsnes_statuss : 'sauss' ,
'Valsts' : 'Indija' }]
# izveidojiet datu rāmi no iepriekšminētajiem datiem
agri_df = linuxhint_spark_app.createDataFrame(agri)
# Apkopotas darbības
agri_df.selectExpr( 'SUMMA (Acres)' , 'VIDĒJS (Acres)' , 'COUNT(Acres)' , 'AVG (Acres)' , 'MIN(Acres)' ,
'MAX (Acres)' ).show()
agri_df.selectExpr( 'MIN(augsnes_statuss)' , 'MAX(augsnes_statuss)' ).show()
Izvade:
Secinājums
Mēs apspriedām par funkciju selectExpr (), kas ņem kolonnas/izteikumu kopas un atgriež DataFrame, pamatojoties uz norādītajām izteiksmēm/kolonnām. Kā daļu no tā mēs uzzinājām četrus galvenos scenārijus, kuros ir piemērojams selectExpr(). Šajā funkcijā var norādīt vairākas izteiksmes, kuras atdala ar komatu. Lai izmantotu funkciju selectExpr(), nav jāizveido PAGAIDU SKATS.