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:
- Što su okviri podataka?
- Zašto su nam potrebni okviri podataka?
- Značajke okvira podataka
- Izvori podatkovnog okvira PySpark
- Stvaranje okvira podataka
- Okviri podataka Pysparka s FIFA-inim podatkovnim nizom Svjetskog kupa i superheroja
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.
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.