PySpark SelectExpr()

Pyspark Selectexpr



PySparkin selectExpr()-funktion avulla voimme suoraan arvioida lausekkeen luomatta TAULUKKOA tai NÄKYMÄT. Tämä toiminto on käytettävissä pyspark.sql.DataFrame-moduulissa, joka on samanlainen kuin select()-menetelmä. SelectExpr() -komennolla voimme näyttää sarakkeet, käyttää sarakkeiden funktioita, arvioida lausekkeita, suorittaa koontioperaatioita jne. On myös mahdollista arvioida/määrittää useita sarakkeita kerrallaan.

Pyspark.sql.DataFrame.selectExpr()

Selectexpr()-funktio ottaa sarakkeet/lausekkeiden joukon ja palauttaa DataFramen määritettyjen lausekkeiden/sarakkeiden perusteella. Tässä funktiossa voidaan määrittää useita lausekkeita, jotka erotetaan pilkulla. DataFramen näyttämiseksi voimme käyttää show()/collect()-funktioita.

Syntaksi:







pyspark_DataFrame_object.selectExpr('Sarakkeet'/'Lausekkeet')

Tässä pyspark_DataFrame_object on syöte PySpark DataFrame.



Skenaario 1: Valitse sarakkeet

Tässä skenaariossa näemme, kuinka valitaan tietyt sarakkeet PySpark DataFrame -kehyksestä käyttämällä selectExpr()-funktiota.



Käytettävä lauseke on 'olemassa oleva_sarake uutena_niminä'. Tässä olemassa oleva_sarake on DataFrame-kehyksessä oleva sarakkeen nimi ja se näytetään muodossa new_name (aliasing).





Esimerkki:

Luo PySpark DataFrame nimeltä 'agri_df', jossa on 5 riviä ja saraketta. Hanki 'Soil_status'- ja 'Soil_Type'-sarakkeet arvoiksi 'STATUS' ja 'TYPE'.

tuonti pyspark

pyspark.sql-tiedostosta tuo SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# viljelydataa 5 rivillä ja 5 sarakkeella

maatalouden =[{ 'Soil_Type' : 'Musta' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 2500 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'USA' },

{ 'Soil_Type' : 'Musta' , 'Kastelun_saatavuus' : 'Joo' , 'Acres' : 3500 , 'Soil_status' : 'Märkä' ,
'Maa' : 'Intia' },

{ 'Soil_Type' : Ei mitään , 'Kastelun_saatavuus' : 'Joo' , 'Acres' : 210 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'UK' },

{ 'Soil_Type' : 'muu' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 1000 , 'Soil_status' : 'Märkä' ,
'Maa' : 'USA' },

{ 'Soil_Type' : 'Hiekka' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 500 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'Intia' }]



# luo datakehys yllä olevista tiedoista

agri_df = linuxhint_spark_app.createDataFrame(agri)

# Hanki Soil_status ja Soil_Type arvoilla 'STATUS' ja 'TYPE'.

agri_df.selectExpr( 'Soil_status as STATUS' , 'Soil_Type as TYPE' ).näytä()

Lähtö:



Skenaario 2: Ehdollisten lausekkeiden määrittäminen

Tässä skenaariossa näemme, kuinka ehtoja voidaan arvioida selectExpr()-funktiossa.

Käytettävä lauseke on 'olemassa oleva_sarake-operaattorin arvo'. Tässä olemassa oleva_sarake on sarakkeen nimi, joka on DataFrame-kehyksessä, ja vertaamme tämän sarakkeen kutakin arvoa merkkijonoon/arvoon.

Esimerkki 1:

Tarkista, onko maa 'USA' vai ei. Tässä käytetään yhtälö (=) -operaattoria.

tuonti pyspark

pyspark.sql-tiedostosta tuo SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# viljelydataa 5 rivillä ja 5 sarakkeella

maatalouden =[{ 'Soil_Type' : 'Musta' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 2500 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'USA' },

{ 'Soil_Type' : 'Musta' , 'Kastelun_saatavuus' : 'Joo' , 'Acres' : 3500 , 'Soil_status' : 'Märkä' ,
'Maa' : 'Intia' },

{ 'Soil_Type' : Ei mitään , 'Kastelun_saatavuus' : 'Joo' , 'Acres' : 210 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'UK' },

{ 'Soil_Type' : 'muu' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 1000 , 'Soil_status' : 'Märkä' ,
'Maa' : 'USA' },

{ 'Soil_Type' : 'Hiekka' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 500 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'Intia' }]



# luo datakehys yllä olevista tiedoista

agri_df = linuxhint_spark_app.createDataFrame(agri)

# Tarkista, onko maa 'USA' vai ei.

agri_df.selectExpr( 'Maa = 'USA' ).näytä()

Lähtö:

Esimerkki 2:

Tarkista, onko Soil_Type NULL vai ei. NULL-avainsana tarkistaa, onko arvo NULL vai ei. Jos se on nolla, palautetaan tosi. Muussa tapauksessa palautetaan false. Viimeinen lauseke on 'Soil_Type IS NULL'

tuonti pyspark

pyspark.sql-tiedostosta tuo SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# viljelydataa 5 rivillä ja 5 sarakkeella

maatalouden =[{ 'Soil_Type' : 'Musta' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 2500 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'USA' },

{ 'Soil_Type' : 'Musta' , 'Kastelun_saatavuus' : 'Joo' , 'Acres' : 3500 , 'Soil_status' : 'Märkä' ,
'Maa' : 'Intia' },

{ 'Soil_Type' : Ei mitään , 'Kastelun_saatavuus' : 'Joo' , 'Acres' : 210 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'UK' },

{ 'Soil_Type' : 'muu' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 1000 , 'Soil_status' : 'Märkä' ,
'Maa' : 'USA' },

{ 'Soil_Type' : 'Hiekka' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 500 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'Intia' }]



# luo datakehys yllä olevista tiedoista

agri_df = linuxhint_spark_app.createDataFrame(agri)

# Tarkista, onko Soil_Type NULL vai ei.

agri_df.selectExpr( 'Soil_Type IS NULL' ).näytä()

Lähtö:

Skenaario 3: Lausekkeiden arviointi

Tässä skenaariossa näemme, kuinka matemaattiset lausekkeet määritetään. Käytetty lauseke on 'existing_column matemaattinen_lauseke'.

Esimerkki:

  1. Näytä todellinen 'Acres' sarake.
  2. Lisää 100 Acres-sarakkeeseen.
  3. Vähennä 100 Acres-sarakkeesta.
  4. Kerro 100 Acres-sarakkeella.
  5. Jaa Acres-sarake 100:lla.
tuonti pyspark

pyspark.sql-tiedostosta tuo SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# viljelydataa 5 rivillä ja 5 sarakkeella

maatalouden =[{ 'Soil_Type' : 'Musta' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 2500 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'USA' },

{ 'Soil_Type' : 'Musta' , 'Kastelun_saatavuus' : 'Joo' , 'Acres' : 3500 , 'Soil_status' : 'Märkä' ,
'Maa' : 'Intia' },

{ 'Soil_Type' : Ei mitään , 'Kastelun_saatavuus' : 'Joo' , 'Acres' : 210 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'UK' },

{ 'Soil_Type' : 'muu' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 1000 , 'Soil_status' : 'Märkä' ,
'Maa' : 'USA' },

{ 'Soil_Type' : 'Hiekka' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 500 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'Intia' }]



# luo datakehys yllä olevista tiedoista

agri_df = linuxhint_spark_app.createDataFrame(agri)

# Kirjoita 4 lauseketta Acres-sarakkeen vähentämiseksi, lisäämiseksi, jakamiseksi ja kertomiseksi.

agri_df.selectExpr( 'Acres' , 'Acres - 100' , 'eekkeriä * 100' , 'Acres + 100' , 'Acres / 100' ).näytä()

Lähtö:

Skenaario 4: Aggregaattifunktioiden käyttäminen

SUMMA(sarakkeen_nimi) – Se arvioi määritetyn sarakkeen kokonaisarvon.

MEAN(sarakkeen_nimi) – Se arvioi määritetyn sarakkeen keskiarvon.

MIN(sarakkeen_nimi) – Se palauttaa vähimmäiselementin määritetyn sarakkeen kaikkien elementtien joukosta.

MAX(sarakkeen_nimi) – Se palauttaa suurimman elementin kaikista määritetyn sarakkeen elementeistä.

Esimerkki:

  1. Etsi 'Acres' kokonais-, keskiarvo-, määrä-, minimi- ja enimmäiselementit.
  2. Etsi minimi- ja enimmäiselementit 'Soil_status' -sarakkeesta.
tuonti pyspark

pyspark.sql-tiedostosta tuo SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# viljelydataa 5 rivillä ja 5 sarakkeella

maatalouden =[{ 'Soil_Type' : 'Musta' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 2500 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'USA' },

{ 'Soil_Type' : 'Musta' , 'Kastelun_saatavuus' : 'Joo' , 'Acres' : 3500 , 'Soil_status' : 'Märkä' ,
'Maa' : 'Intia' },

{ 'Soil_Type' : Ei mitään , 'Kastelun_saatavuus' : 'Joo' , 'Acres' : 210 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'UK' },

{ 'Soil_Type' : 'muu' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 1000 , 'Soil_status' : 'Märkä' ,
'Maa' : 'USA' },

{ 'Soil_Type' : 'Hiekka' , 'Kastelun_saatavuus' : 'Ei' , 'Acres' : 500 , 'Soil_status' : 'Kuiva' ,
'Maa' : 'Intia' }]



# luo datakehys yllä olevista tiedoista

agri_df = linuxhint_spark_app.createDataFrame(agri)

# Kokoomatoiminnot

agri_df.selectExpr( 'SUMMA(Acres)' , 'KESKUS(Acres)' , 'COUNT(acres)' , 'AVG (Acres)' , 'MIN(Acres)' ,
'MAX (Acres)' ).näytä()

agri_df.selectExpr( 'MIN(maaperän tila)' , 'MAX(Soil_status)' ).näytä()

Lähtö:

Johtopäätös

Keskustelimme selectExpr()-funktiosta, joka ottaa sarakkeet/lausekkeiden joukot ja palauttaa DataFramen määritettyjen lausekkeiden/sarakkeiden perusteella. Osana tätä opimme neljä pääskenaariota, joissa selectExpr() on sovellettavissa. Tässä funktiossa voidaan määrittää useita lausekkeita, jotka erotetaan pilkulla. ValitseLaus()-funktion käyttämiseksi ei tarvitse luoda VÄLIAIKAISTA NÄKYMÄTTÄ.