Vadnica za PySpark Dataframe - Programiranje PySpark z podatkovnimi okviri



V tem blogu vadnic PySpark Dataframe boste z več primeri spoznali transformacije in dejanja v Apache Spark.

Dataframes je danes modna beseda v industriji. Ljudje ga običajno uporabljajo v priljubljenih jezikih, ki se uporabljajo za analizo podatkov, kot so Python, Scala in R.Plus, z očitno potrebo po obdelavi zapletenih analiz in spreminjanju nalog za Big Data, Python za Spark oz je postalo eno najbolj iskanih znanj v današnji panogi.Zakaj ga torej vsi toliko uporabljajo? Razumimo to z našimi Vadnica za podatkovni okvir PySpark blog. V tem blogu bom obravnaval naslednje teme:





Vadnica za podatkovni okvir PySpark: Kaj so podatkovni okviri?

Podatkovni okviri se na splošno nanašajo na podatkovno strukturo, ki je tabelarične narave. Predstavlja vrstice, od katerih je vsaka sestavljena iz številnih opazovanj. Vrstice imajo lahko različne oblike podatkov ( Heterogena ), medtem ko lahko stolpec vsebuje podatke iste vrste podatkov ( Homogena ). Podatkovni okviri poleg podatkov, na primer imen stolpcev in vrstic, običajno vsebujejo tudi nekatere metapodatke.

Dataframe-Pyspark-Dataframe-Tutorial



Lahko rečemo, da podatkovni okviri niso nič drugega kot dvodimenzionalna podatkovna struktura, podobna tabeli SQL ali preglednici. Zdaj pa nadaljujmo s tem vadnico PySpark Dataframe in razumemo, zakaj točno potrebujemo Pyspark Dataframe?

Zakaj potrebujemo podatkovne okvire?

1. Obdelava strukturiranih in polstrukturiranih podatkov



Podatkovni okviriso namenjeni za obdelavodo velik zbiranje tako strukturiranih kot tudi polstrukturiranih podatkov . Opazovanja v Spark DataFrame so organizirana pod imenovanimi stolpci, kar Apache Spark pomaga razumeti shemo DataFrame. To Sparku pomaga optimizirati načrt izvajanja teh poizvedb. Zmore tudi Petabajti podatkov.

2. S. licenciranje in kockanje

Podatkovni okvir API običajno podpirajo izdelane metode za rezanje in rezanje podatki. Vključujedelovanjens, kot so »izbiranje« vrstic, stolpcev in celic po imenu ali po številki, filtriranje vrstic itd. Statistični podatki so ponavadi zelo grdi in vsebujejo veliko manjkajočih in napačnih vrednosti ter kršitev obsega. Kritično pomembna značilnost podatkovnih okvirov je torej izrecno upravljanje manjkajočih podatkov.

3. Viri podatkov

DataFrame ima podporo za široko paleto podatkovnih formatov in virov, to bomo preučili kasneje v tem blogu Pyspark Dataframe Tutorial. Vnesejo lahko podatke iz različnih virov.

4. Podpora za več jezikov

Podpira API za različne jezike, kot so Python, R, Scala, Java,kar olajša uporabo ljudem z različnim programskim ozadjem.

Naročite se na naš youtube kanal in prejemajte nove posodobitve ..!

Značilnosti podatkovnih okvirjev

  • Podatkovni okviri so Porazdeljeno v naravi, zaradi česar je zmožna strpnosti in visoko razpoložljiva struktura podatkov.
  • Leno vrednotenje je ocenjevalna strategija, ki zadrži vrednotenje izraza, dokler ni potrebna njegova vrednost. Izogiba se ponavljajočemu se vrednotenju. Leno vrednotenje v Sparku pomeni, da se izvajanje ne začne, dokler se ne sproži dejanje. V Sparku se slika lenega vrednotenja pojavi, ko pride do transformacij Spark.
  • Podatkovni okviri so Nespremenljiv v naravi. Z nespremenljivim mislim, da gre za objekt, katerega stanje ni mogoče spremeniti ko je ustvarjen.Lahko pa se preobrazimosvojevrednosti z uporabodoločenkot pri RDD.

Viri podatkovnega okvira PySpark

Podatkovne okvire v Pysparku lahko ustvarite na več načinov:

Podatke je mogoče naložiti prek CSV, JSON, XML ali parketna datoteka. Lahko ga ustvarite tudi z uporabo obstoječega RDD in prek katere koli druge baze podatkov, na primer Panj ali Cassandra prav tako. Vnese lahko tudi podatke iz HDFS ali lokalnega datotečnega sistema.

Ustvarjanje podatkovnega okvira

Gremo naprej s tem blogom PySpark Dataframe Tutorial in razumemo, kako ustvariti Dataframes.

Ustvarili bomo primerke zaposlenih in oddelkov.

from pyspark.sql import * Employee = Row ('firstName', 'lastName', 'email', 'pay') worker1 = Employee ('Basher', 'armbrust', 'bash@edureka.co', 100000) worker2 = Zaposleni ('Daniel', 'meng', 'daniel@stanford.edu', 120000) worker3 = Zaposleni ('Muriel', Noben, 'muriel@waterloo.edu', 140000) zaposleni4 = Zaposleni ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) worker5 = Zaposleni (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (Employee [0]) print (worker3) department1 = Row (id = '123456', name = 'HR') oddelek2 = Vrstica (id = '789012', name = 'OPS') oddelek3 = Vrstica (id = '345678', name = 'FN') oddelek4 = Vrstica (id = ' 901234 ', name =' DEV ')

Nato bomo ustvarili primerek DepartmentWithE Employees iz zaposlenih in oddelkov

departmentWithE Employees1 = Vrstica (oddelek = oddelek1, zaposleni = [zaposleni1, zaposleni2, zaposleni5]) departmentWithE Employees2 = Vrstica (oddelek = oddelek2, zaposleni = [zaposleni3, zaposleni4]) departmentWithE Employees3 = Vrstica (oddelek = oddelek3, zaposleni = [zaposleni1, zaposleni4, zaposleni3 ]) departmentWithE Employees4 = vrstica (oddelek = oddelek4, zaposleni = [zaposleni2, zaposleni3])

Ustvarimo naš podatkovni okvir s seznama vrstic

departmaji z zaposlenimi_Seq = [oddelek z zaposlenimi1, oddelki z zaposlenimi2] dframe = spark.createDataFrame (oddelki z zaposlenimi_sek) display (dframe) dframe.show ()

Podatkovni okviri Pyspark Primer 1: Nabor podatkov FIFA World Cup

Tu smo vzeli nabor podatkov o igralcih svetovnega pokala FIFA. Naložili bomo te podatke v obliki CSVv apodatkovni okvir in nato bomo spoznali različne transformacije in dejanja, ki jih je mogoče izvesti v tem podatkovnem okviru.

Branje podatkov iz datoteke CSV

Naložimo podatke iz datoteke CSV. Tu bomo uporabili spark.read.csv metoda za nalaganje podatkov v podatkovni okvir fifa_df. Dejanska metoda je spark.read.format [csv / json] .

fifa_df = spark.read.csv ('pot do datoteke / fifa_players.csv', inferSchema = True, header = True) fifa_df.show ()

Shema podatkovnega okvira

Če si želite ogledati shemo, tj. strukturo podatkovnega okvira, bomo uporabili printSchema metoda. To nam bo dalo različne stolpce v našem podatkovnem okviru skupaj z vrsto podatkov in ničelnimi pogoji za ta stolpec.

fifa_df.printSchema ()

Imena in števci stolpcev (vrstice in stolpci)

Ko si želimo ogledati imena in štetje števila vrstic in stolpcev določenega podatkovnega okvira, uporabimo naslednje metode.

fifa_df.columns // Imena stolpcev fifa_df.count () // Število vrstic len (fifa_df.columns) // Število stolpcev

37784 8.

Opis določenega stolpca

Če želimo pogledati povzetek katerega koli stolpca podatkovnega okvira, uporabimo opisuje metoda. Ta metoda nam daje statistični povzetek danega stolpca, če ni določen, pa statistični povzetek podatkovnega okvira.

podatkovni okvir v primeru selena spletnega gonilnika
fifa_df.describe ('Ime trenerja'). show () fifa_df.describe ('Položaj'). show ()

Izbira več stolpcev

Če želimo iz podatkovnega okvira izbrati določene stolpce, uporabimo izberite metoda.

fifa_df.select ('Ime igralca', 'Ime trenerja'). show ()

Izbira ločenih več stolpcev

fifa_df.select ('Ime igralca', 'Ime trenerja'). distinct (). show ()

Filtriranje podatkov

Za filtriranje podatkov v skladu z določenim pogojem uporabljamo filter ukaz. Tu filtriramo svoj podatkovni okvir na podlagi pogoja, da mora biti ID ujemanja enak 1096, nato pa izračunamo, koliko zapisov / vrstic je v filtriranem izhodu.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // za pridobitev števila

Filtriranje podatkov (več parametrov)

Podatke lahko filtriramo na podlagi več pogojev (IN ALI)

fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40' ')). show ()

Razvrščanje podatkov (OrderBy)

Za razvrščanje podatkov uporabljamo Naroči metoda. Privzeto razvršča po naraščajočem vrstnem redu, lahko pa ga spremenimo tudi v padajoči.

fifa_df.orderBy (fifa_df.MatchID) .show ()

Podatkovni okviri PySpark Primer 2: Nabor podatkov o superherojih

Nalaganje podatkov

Tu bomo podatke naložili na enak način kot prej.

Superhero_df = spark.read.csv ('pot do datoteke / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)

Filtriranje podatkov

Superhero_df.filter (Superhero_df.Gender == 'Male'). Count () // Moški Heros Count Superhero_df.filter (Superhero_df.Gender == 'Female'). Count () // Ženske Heros Count

Združevanje podatkov v skupine

GroupBy se uporablja za združevanje podatkovnega okvira na podlagi določenega stolpca. Tu združujemo podatkovni okvir na podlagi stolpca Race in nato z štetje funkcijo, lahko najdemo število posamezne dirke.

Race_df = Superhero_df.groupby ('Race') .count () .show ()

Izvajanje poizvedb SQL

Poizvedbe SQL lahko posredujemo tudi neposredno kateremu koli podatkovnemu okviru, za kar moramo iz podatkovnega okvira ustvariti tabelo z uporabo registerTempTable in nato uporabite sqlContext.sql () za posredovanje poizvedb SQL.

Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('select * from superhero_table'). Show ()

sqlContext.sql ('izberi ločeno (Eye_color) od superhero_table'). show ()

sqlContext.sql ('izberi ločeno (Eye_color) iz superhero_table'). count ()

2. 3

sqlContext.sql ('izberi max (teža) iz superhero_table'). show ()

In s tem smo prišli do konca te vaje za PySpark Dataframe.

Torej, to je to, fantje!

Upam, da ste dobili idejo o tem, kaj je PySpark Dataframe, zakaj se uporablja v industriji in njegovih značilnostih v tem blogu o vajah za PySpark Dataframe. Čestitamo, niste več novinec v podatkovnih okvirih. Če želite izvedeti več o PySparku in razumeti različne primere uporabe v industriji, si oglejte našo Iskrica s Pythonom in Vadnica za PySpark Spletni dnevnik.