Vodič za PySpark Dataframe - Programiranje PySpark s okvirima podataka



U ovom blogu tutorijala za PySpark Dataframe naučit ćete o transformacijama i radnjama u Apache Sparku s više primjera.

Dataframes je danas modna riječ u industriji. Ljudi ga obično koriste s popularnim jezicima koji se koriste za analizu podataka poput Pythona, Scale i R.Uz to, s očitom potrebom za rukovanjem složenim analizama i zadacima mijenjanja za Big Data, Python za Spark ili je postala jedna od najtraženijih vještina u današnjoj industriji.Pa, zašto to svi toliko koriste? Razumijemo ovo s našim Vodič za PySpark Dataframe blog. Na ovom blogu obrađivat ću sljedeće teme:





Vodič za PySpark Dataframe: Što su okviri podataka?

Okviri podataka općenito se odnose na strukturu podataka koja je tabelarne prirode. Predstavlja redove od kojih se svaki sastoji od niza opažanja. Redovi mogu imati razne formate podataka ( Heterogena ), dok stupac može sadržavati podatke iste vrste podataka ( Homogena ). Okviri podataka osim podataka, na primjer, imena stupaca i redaka, obično sadrže i neke metapodatke.

Dataframe-Pyspark-Dataframe-Tutorial



Možemo reći da podatkovni okviri nisu ništa drugo nego dvodimenzionalna struktura podataka, slična SQL tablici ili proračunskoj tablici. Krenimo sada s ovim vodičem za PySpark Dataframe i shvatimo zašto nam točno treba Pyspark Dataframe?

Zašto su nam potrebni okviri podataka?

1. Obrada strukturiranih i polustrukturiranih podataka



Okviri podatakasu dizajnirani za obradudo velika prikupljanje strukturiranih kao i polustrukturiranih podataka . Opažanja u Spark DataFrameu organizirana su pod imenovanim stupcima, što pomaže Apache Sparku da shvati shemu DataFramea. To pomaže Sparku da optimizira plan izvršenja ovih upita. Također se može nositi Petabajti podataka.

2.S licenciranje i kockanje

Okvir podataka API obično podržavaju razrađene metode za rezanje-i-kockanje podatak. Uključujeoperacijans kao što su 'odabir' redaka, stupaca i ćelija po imenu ili broju, filtriranje redaka itd. Statistički podaci obično su vrlo neuredni i sadrže puno nedostajućih i pogrešnih vrijednosti i kršenja raspona. Dakle, kritično važno obilježje okvira podataka je eksplicitno upravljanje podacima koji nedostaju.

3. Izvori podataka

DataFrame ima podršku za širok raspon formata podataka i izvora, to ćemo razmotriti kasnije na ovom blogu Pyspark Dataframe Tutorial. Oni mogu uzimati podatke iz različitih izvora.

4.Podrška za više jezika

Ima API podršku za različite jezike kao što su Python, R, Scala, Java,što olakšava upotrebu ljudima koji imaju različito programsko podrijetlo.

Pretplatite se na naš youtube kanal da biste dobivali nova ažuriranja ..!

Značajke okvira podataka

  • Okviri podataka jesu Distribuirano u prirodi, što ga čini tolerantnim i visoko dostupnom strukturom podataka.
  • Lijena procjena je strategija vrednovanja koja drži vrednovanje izraza sve dok njegova vrijednost nije potrebna. Izbjegava ponovljeno ocjenjivanje. Lijena procjena u Sparku znači da izvršenje neće započeti dok se ne pokrene radnja. U Sparku slika lijenog vrednovanja dolazi kada se dogodi Spark transformacija.
  • Okviri podataka jesu Nepromjenjiv u prirodi. Pod nepromjenjivim mislim da je to objekt čije stanje ne može se mijenjati nakon što se stvori.Ali možemo se transformiratisvojevrijednosti primjenomodređentransformacija, kao u RDD-ima.

Izvori podatkovnog okvira PySpark

Okviri podataka u Pysparku mogu se kreirati na više načina:

Podaci se mogu učitati putem a CSV, JSON, XML ili turpija za parket. Također se može stvoriti pomoću postojećeg RDD i putem bilo koje druge baze podataka, poput Košnica ili Cassandra također. Također može uzimati podatke iz HDFS-a ili lokalnog datotečnog sustava.

Stvaranje okvira podataka

Krenimo naprijed s ovim blogom Vodiča za PySpark Dataframe i shvatimo kako stvoriti okvire podataka.

Stvorit ćemo instance zaposlenika i odjela.

s pyspark.sql import * Employee = Red ('firstName', 'lastName', 'email', 'pay') worker1 = Employee ('Basher', 'armbrust', 'bash@edureka.co', 100000) zaposlenik2 = Zaposlenik ('Daniel', 'meng', 'daniel@stanford.edu', 120000) zaposlenik3 = Zaposlenik ('Muriel', Nijedan, 'muriel@waterloo.edu', 140000) zaposlenik4 = Zaposlenik ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) zaposlenik5 = Zaposlenik (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (zaposlenik [0]) print (zaposlenik3) odjel1 = red (id = '123456', name = 'HR') odjel2 = Red (id = '789012', name = 'OPS') odjel3 = Red (id = '345678', name = 'FN') odjel4 = Red (id = ' 901234 ', name =' DEV ')

Dalje ćemo stvoriti instancu DepartmentWithE Employees od zaposlenika i odjela

departmentWithEfficiees1 = Red (odjel = odjel1, zaposlenici = [zaposlenik1, zaposlenik2, zaposlenik5]) odjelZaposlenici2 = Red (odjel = odjel2, zaposlenici = [zaposlenik3, zaposlenik4]) odjelZaposlenici3 = Red (odjel = odjel3, zaposlenici = [zaposlenik1, zaposlenik4, zaposlenik3 ]) departmentWithE Employees4 = Red (odjel = odjel4, zaposlenici = [zaposlenik2, zaposlenik3])

Stvorimo svoj podatkovni okvir s popisa redaka

departmentWithEfficiees_Seq = [departmentWithEfficiees1, departmentWithEfficiees2] dframe = spark.createDataFrame (departmentWithEfficiees_Seq) display (dframe) dframe.show ()

Okviri podataka Pysparka Primjer 1: FIFA-in svjetski kup podataka

Ovdje smo uzeli FIFA-in skup podataka o igračima Svjetskog kupa. Učitati ćemo ove podatke koji su u CSV formatuu apodatkovni okvir, a zatim ćemo naučiti o različitim transformacijama i radnjama koje se mogu izvesti na ovom podatkovnom okviru.

Čitanje podataka iz CSV datoteke

Učitajmo podatke iz CSV datoteke. Ovdje ćemo koristiti iskra.čitati.csv metoda za učitavanje podataka u podatkovni okvir fifa_df. Stvarna metoda je spark.read.format [csv / json] .

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

Shema podatkovnog okvira

Da biste pogledali shemu, tj. strukturu podatkovnog okvira, koristit ćemo shema ispisa metoda. To će nam dati različite stupce u našem podatkovnom okviru, zajedno s vrstom podataka i nulibilnim uvjetima za taj određeni stupac.

fifa_df.printSchema ()

Imena i brojevi stupaca (retci i stupci)

Kada želimo pogledati imena i brojati broj redaka i stupaca određenog okvira podataka, koristimo sljedeće metode.

fifa_df.columns // Imena stupaca fifa_df.count () // Broj redova len (fifa_df.columns) // Broj stupaca

37784 8

Opisivanje određenog stupca

Ako želimo pogledati sažetak bilo kojeg određenog stupca Dataframe-a, koristimo opisuje metoda. Ova metoda daje nam statistički sažetak datog stupca, ako nije naveden, pruža statistički sažetak okvira podataka.

Vodiči za Microsoft SQL Server za početnike
fifa_df.describe ('Ime trenera'). show () fifa_df.describe ('Pozicija'). show ()

Odabir više stupaca

Ako iz okvira podataka želimo odabrati određene stupce, koristimo Odaberi metoda.

fifa_df.select ('Ime igrača', 'Ime trenera'). show ()

Odabir izrazitih višestrukih stupaca

fifa_df.select ('Ime igrača', 'Ime trenera'). distinct (). show ()

Filtriranje podataka

Da bismo filtrirali podatke, prema navedenom stanju, koristimo filtar naredba. Ovdje filtriramo naš podatkovni okvir na temelju uvjeta da ID podudaranja mora biti jednak 1096, a zatim izračunavamo koliko zapisa / redaka ima u filtriranom izlazu.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // za dobivanje broja

Filtriranje podataka (više parametara)

Naše podatke možemo filtrirati na temelju više uvjeta (I ILI)

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

Sortiranje podataka (OrderBy)

Za sortiranje podataka koristimo Naruči do metoda. Prema zadanim postavkama sortira se po uzlaznom redoslijedu, ali možemo ga promijeniti i u silaznom redoslijedu.

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

PySpark podatkovni okviri Primjer 2: Superheros skup podataka

Učitavanje podataka

Ovdje ćemo podatke učitati na isti način kao i ranije.

Superheroj_df = spark.read.csv ('put do datoteke / superheros.csv', inferSchema = True, zaglavlje = True) Superheroj_df.show (10)

Filtriranje podataka

Superhero_df.filter (Superhero_df.Gender == 'Muški'). Count () // Muški Heros Count Superhero_df.filter (Superhero_df.Gender == 'Ženski'). Count () // Ženski Heros Count

Grupiranje podataka

GroupBy koristi se za grupiranje podatkovnog okvira na temelju navedenog stupca. Ovdje grupiramo podatkovni okvir na temelju stupca Race, a zatim s računati funkcije, možemo pronaći broj određene rase.

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

Izvođenje SQL upita

Također možemo proslijediti SQL upite izravno bilo kojem podatkovnom okviru, za to trebamo stvoriti tablicu iz podatkovnog okvira pomoću registerTempTable metodu, a zatim upotrijebite sqlContext.sql () za prosljeđivanje SQL upita.

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

sqlContext.sql ('odaberi različito (Boja_oka) od superherojskog_tabla'). show ()

sqlContext.sql ('odaberi različito (Boja_oka) od superherojskog_tabla'). count ()

2. 3

sqlContext.sql ('odaberite max (težina) iz superhero_table'). show ()

I ovim smo došli do kraja ovog vodiča za PySpark Dataframe.

Dakle, to je to, momci!

Nadam se da ste stekli ideju o tome što je PySpark Dataframe, zašto se koristi u industriji i njegovim značajkama na ovom blogu vodiča za PySpark Dataframe. Čestitamo, više niste novak za Dataframes. Ako želite saznati više o PySparku i razumjeti različite slučajeve korištenja u industriji, pogledajte naš Iskra s Pythonom i Vodič za PySpark Blog.