„PySpark Dataframe Tutorial“ - „PySpark“ programavimas naudojant „Dataframe“



Šiame „PySpark Dataframe“ mokymo tinklaraštyje sužinosite apie „Apache Spark“ transformacijas ir veiksmus su keliais pavyzdžiais.

Duomenų rėmeliai yra populiarus žodis pramonėje. Žmonės linkę jį naudoti su populiariomis duomenų analizei naudojamomis kalbomis, tokiomis kaip „Python“, „Scala“ ir R.Be to, akivaizdu, kad reikia atlikti sudėtingas „Big Data“, „Python“, „Spark“ ar „Analytics“ analizes ir valdyti užduotis šiandien tapo vienu iš labiausiai ieškomų įgūdžių pramonėje.Taigi, kodėl visi taip naudojasi? Supraskime tai su savo „PySpark Dataframe“ pamoka dienoraštis. Šiame tinklaraštyje aptarsiu šias temas:



„PySpark Dataframe“ mokymo programa: kas yra „Dataframe“?

Duomenų rėmai paprastai reiškia duomenų struktūrą, kuri yra lentelės pobūdžio. Tai reiškia eilutes, kurias kiekvieną sudaro daugybė stebėjimų. Eilučių duomenys gali būti įvairūs ( Nevienalytis ), o stulpelyje gali būti to paties tipo duomenys ( Vienalytis ). Duomenų rėmeliuose, be duomenų, pavyzdžiui, stulpelių ir eilučių pavadinimuose, paprastai yra keletas metaduomenų.

Dataframe-Pyspark-Dataframe-Tutorial



Galime sakyti, kad „Dataframe“ yra ne kas kita, o dvimatė duomenų struktūra, panaši į SQL lentelę ar skaičiuoklę. Dabar eikime į priekį naudodami šią „PySpark Dataframe“ mokymo programą ir supraskime, kodėl mums tiksliai reikia „Pyspark Dataframe“?

Kodėl mums reikia duomenų rėmelių?

1. Struktūrizuotų ir pusiau struktūrinių duomenų apdorojimas



Duomenų rėmeliaiyra skirti apdorotiį didelis struktūrizuotų ir pusiau struktūrinių duomenų rinkimas . Stebėjimai programoje „Spark DataFrame“ yra organizuojami pavadintuose stulpeliuose, o tai padeda „Apache Spark“ suprasti „DataFrame“ schemą. Tai padeda „Spark“ optimizuoti šių užklausų vykdymo planą. Jis taip pat gali susitvarkyti Petabaitai duomenų.

2. S. licencijavimas ir išpjaustymas kubeliais

Duomenų rėmas API paprastai palaiko sudėtingus metodus pjaustymas ir supjaustymas duomenys. Tai įeinaoperacijaNs, pvz., „pasirinkti“ eilutes, stulpelius ir langelius pagal pavadinimą ar skaičių, filtruoti eilutes ir tt Statistiniai duomenys paprastai yra labai netvarkingi ir juose yra daug trūkstamų ir neteisingų reikšmių ir diapazono pažeidimų. Taigi kritiškai svarbus duomenų rėmų bruožas yra aiškus trūkstamų duomenų valdymas.

3. Duomenų šaltiniai

„DataFrame“ palaiko platų duomenų formatų ir šaltinių asortimentą, mes tai apžvelgsime vėliau šiame „Pyspark Dataframe Tutorial“ tinklaraštyje. Jie gali priimti duomenis iš įvairių šaltinių.

4. Parama kelioms kalboms

Jis palaiko API įvairiomis kalbomis, tokiomis kaip Python, R, Scala, Java,tai leidžia lengviau naudotis žmonėms, turintiems skirtingą programavimo foną.

Norėdami gauti naujienų, užsiprenumeruokite mūsų „YouTube“ kanalą!

Duomenų rėmelių ypatybės

  • Duomenų rėmeliai yra Paskirstyta gamtoje, todėl ji yra tolerantiška gedimams ir labai prieinama duomenų struktūra.
  • Tingi vertinimas yra vertinimo strategija, kuri palaiko išraiškos vertinimą tol, kol reikia jos vertės. Taip išvengiama pakartotinio vertinimo. Tingus „Spark“ įvertinimas reiškia, kad vykdymas nebus pradėtas, kol nebus suaktyvintas veiksmas. Sparke tingaus vertinimo vaizdas atsiranda, kai įvyksta „Spark“ transformacijos.
  • Duomenų rėmeliai yra Nekintamas gamtoje. Nekintamas turiu omenyje, kad tai objektas, kurio būsena negalima modifikuoti jį sukūrus.Bet mes galime transformuotisjosvertes taikanttam tikrastransformacija, kaip ir RDD.

„PySpark Dataframe“ šaltiniai

Duomenų rėmus „Pyspark“ galima sukurti keliais būdais:

Duomenis galima įkelti per a CSV, JSON, XML arba parketo byla. Jis taip pat gali būti sukurtas naudojant esamą RDD ir per bet kurią kitą duomenų bazę Avilys arba Kasandra taip pat. Jis taip pat gali priimti duomenis iš HDFS ar vietinės failų sistemos.

Duomenų kadrų kūrimas

Pažvelkime į priekį naudodami šį „PySpark Dataframe Tutorial“ tinklaraštį ir supraskime, kaip sukurti „Dataframe“.

Sukursime darbuotojų ir skyrių egzempliorius.

from pyspark.sql import Darbuotojas („Daniel“, „meng“, „daniel@stanford.edu“, 120000) darbuotojas3 = darbuotojas („Muriel“, nėra, „muriel@waterloo.edu“, 140000) darbuotojas4 = darbuotojas („Rachel“, „wendell“ 5, darbuotojas ('Zach', 'galifianakis', 'zach_g@edureka.co', 160000) spausdinti (darbuotojas [0]) spausdinti (darbuotojas3) skyrius1 = eilutė (ID = '123456', name = 'HR') skyrius2 = eilutės (id = '789012', vardas = 'OPS') skyrius3 = eilutės (id = '345678', vardas = 'FN') skyrius4 = eilutė (id = ' 901234 “, pavadinimas =„ DEV “)

Tada mes sukursime DepartmentWithEmployees egzempliorių iš Darbuotojų ir Departamentų

departmentWithEmployees1 = eilutė (skyrius = skyrius1, darbuotojai = [darbuotojas1, darbuotojas2, darbuotojas5]) skyriusWithEmployees2 = eilutė (skyrius = skyrius2, darbuotojai = [darbuotojas3, darbuotojas4]) skyrius su darbuotojais3 = eilutė (skyrius = skyrius3, darbuotojai = [darbuotojas1, darbuotojas4, darbuotojas3] ]) skyrius su darbuotojais4 = eilutė (skyrius = skyrius4, darbuotojai = [darbuotojas2, darbuotojas3])

Sukurkime savo duomenų rėmelį iš eilučių sąrašo

departmentsWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departmentsWithEmployees_Seq) rodyti (dframe) dframe.show ()

„Pyspark Dataframes“ 1 pavyzdys: FIFA pasaulio taurės duomenų rinkinys

Čia mes paėmėme FIFA pasaulio taurės žaidėjų duomenų rinkinį. Įkelsime šiuos duomenis CSV formatuį aduomenų kadrą, tada sužinosime apie įvairias transformacijas ir veiksmus, kuriuos galima atlikti šiame duomenų kadre.

Duomenų skaitymas iš CSV failo

Įkelkime duomenis iš CSV failo. Čia mes ketiname naudoti kibirkštis.skaityti.csv metodas įkelti duomenis į duomenų rėmą fifa_df. Tikrasis metodas yra spark.read.format [csv / json] .

fifa_df = spark.read.csv ('failo kelias / fifa_players.csv', inferSchema = True, antraštė = True) fifa_df.show ()

„Dataframe“ schema

Norėdami pažvelgti į schemą, t. duomenų kadro struktūrą, mes naudosime printSchema metodas. Tai suteiks mums skirtingus duomenų rėmo stulpelius, duomenų tipą ir negaliojančias to konkretaus stulpelio sąlygas.

fifa_df.printSchema ()

Stulpelių pavadinimai ir skaičius (eilutės ir stulpelis)

Kai norime pažvelgti į konkretaus „Dataframe“ pavadinimus ir eilučių bei stulpelių skaičių, mes naudojame šiuos metodus.

fifa_df.columns // Stulpelių pavadinimai fifa_df.count () // Eilių skaičius len (fifa_df.columns) // Stulpelių skaičius

37784 8

Apibūdinant tam tikrą stulpelį

Jei norime peržiūrėti bet kurio konkretaus „Dataframe“ stulpelio suvestinę, naudojame apibūdina metodas. Šis metodas suteikia mums pateikto stulpelio statistinę suvestinę, jei nenurodyta, pateikiama statistinė duomenų kadro suvestinė.

kaip sukurti žurnalo failus Java
fifa_df.describe ('Trenerio vardas'). show () fifa_df.describe ('Pozicija'). show ()

Kelių stulpelių pasirinkimas

Jei norime iš duomenų rėmelio pasirinkti tam tikrus stulpelius, naudojame pasirinkite metodas.

fifa_df.select („Žaidėjo vardas“, „Trenerio vardas“). show ()

Skiriamų kelių stulpelių pasirinkimas

fifa_df.select („Žaidėjo vardas“, „Trenerio vardas“). atskiras (). rodyti ()

Duomenų filtravimas

Norėdami filtruoti duomenis pagal nurodytą sąlygą, mes naudojame filtras komandą. Čia mes filtruojame savo duomenų kadrą pagal sąlygą, kad atitikties ID turi būti lygus 1096, tada apskaičiuojame, kiek įrašų / eilučių yra filtruotame išvestyje.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // gauti skaičių

Duomenų filtravimas (keli parametrai)

Mes galime filtruoti savo duomenis pagal kelias sąlygas (IR arba ARBA)

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

Duomenų rūšiavimas („OrderBy“)

Norėdami rūšiuoti duomenis, mes naudojame Rūšiuoti pagal metodas. Pagal numatytuosius nustatymus jis rūšiuojamas didėjimo tvarka, tačiau mes galime jį pakeisti ir mažėjimo tvarka.

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

„PySpark Dataframes“ 2 pavyzdys: „Superheros“ duomenų rinkinys

Įkeliami duomenys

Čia duomenis įkelsime taip pat, kaip ir anksčiau.

Superhero_df = spark.read.csv ('failo kelias / superheros.csv', inferSchema = True, antraštė = True) Superhero_df.show (10)

Duomenų filtravimas

Superhero_df.filter (Superhero_df.Gender == 'Male'). Count () // Heros Heros Count Superhero_df.filter (Superhero_df.Gender == 'Female'). Count () // Female Heros Count

Duomenų grupavimas

Grupuoti pagal naudojamas duomenų kadrui grupuoti pagal nurodytą stulpelį. Čia duomenų grupę grupuojame pagal stulpelį „Race“ ir tada su „ suskaičiuoti funkciją, galime rasti konkrečių lenktynių skaičių.

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

SQL užklausų atlikimas

SQL užklausas taip pat galime perduoti tiesiogiai bet kuriam duomenų rėmui, tam mes turime sukurti lentelę iš duomenų rėmelio naudodami registerTempTable metodą ir tada naudokite sqlContext.sql () perduoti SQL užklausas.

„Superhero_df.registerTempTable“ („superhero_table“) sqlContext.sql („pasirinkite * iš superhero_table“). Show ()

sqlContext.sql ('pasirinkite skirtingą (akių spalva) nuo superhero_table'). show ()

sqlContext.sql ('pasirinkite skirtingą (Akių spalva) nuo superhero_table'). count ()

2. 3

sqlContext.sql ('pasirinkite maks. (Svoris) iš superhero_table'). show ()

Tuo pasibaigus ši „PySpark Dataframe Tutorial“ baigsis.

Tai štai, vaikinai!

Tikiuosi, kad jūs, vaikinai, supratote, kas yra „PySpark Dataframe“, kodėl jis naudojamas pramonėje ir jo funkcijos šiame „PySpark Dataframe Tutorial“ tinklaraštyje. Sveikiname, jūs nebesate „Dataframe“ naujokas. Jei norite sužinoti daugiau apie „PySpark“ ir suprasti įvairius pramonės naudojimo atvejus, pažvelkite į mūsų puslapį Kibirkštis su „Python“ ir „PySpark“ pamoka Tinklaraštis.