PySparki andmekaadri õpetus - PySparki programmeerimine andmeraamidega



Selles PySparki Dataframe'i õpetuse ajaveebis saate mitme näite abil teada Apache Sparki muudatustest ja toimingutest.

Andmekaadrid on tänapäeval tööstuses moesõna. Inimesed kipuvad seda kasutama andmete analüüsimiseks kasutatavate populaarsete keeltega, nagu Python, Scala ja R.Lisaks ilmsele vajadusele keerukate analüüside ja Big Data, Pythoni Sparki või on muutunud tänapäeval tööstuse üheks nõutumaks oskuseks.Miks siis kõik seda nii palju kasutavad? Saame sellest aru oma PySparki andmekaadri õpetus ajaveeb. Selles blogis käsitlen järgmisi teemasid:





PySparki andmekaadri õpetus: mis on andmekaadrid?

Andmekaadrid viitavad üldiselt andmestruktuurile, mis on oma olemuselt tabel. See tähistab ridu, millest igaüks koosneb mitmest tähelepanekust. Ridadel võib olla mitmesuguseid andmevorminguid ( Heterogeenne ), samas kui veerus võivad olla sama tüüpi andmed ( Homogeenne ). Andmeraamid sisaldavad lisaks andmetele tavaliselt mõnda metaandmeid, näiteks veergude ja ridade nimesid.

Dataframe-Pyspark-Dataframe-Tutorial



Võime öelda, et andmekaadrid pole midagi muud, kui kahemõõtmeline andmestruktuur, mis on sarnane SQL-i tabelile või arvutustabelile. Nüüd liigume selle PySpark Dataframe juhendajaga edasi ja mõistame, miks me täpselt Pyspark Dataframe'i vajame?

Miks me vajame andmekaadreid?

1. Struktureeritud ja poolstruktureeritud andmete töötlemine



Andmeraamidon ette nähtud töötlemisekskuni suur struktureeritud kui ka poolstruktureeritud andmete kogumine . Vaatlused rakenduses Spark DataFrame on korraldatud nimetud veergude alla, mis aitab Apache Sparkil mõista DataFrame'i skeemi. See aitab Sparkil nende päringute täitmisplaani optimeerida. See saab ka hakkama Petabaiti andmete kohta.

2. S. litsentsimine ja tükeldamine

Andmeraam API-d toetavad tavaliselt keerukaid meetodeid viilutamine ja tükeldamine andmed. See sisaldaboperatsioonins, näiteks ridade, veergude ja lahtrite valimine nime või numbri järgi, ridade filtreerimine jne. Statistilised andmed on tavaliselt väga segased ja sisaldavad palju puuduvaid ja valesid väärtusi ning vahemiku rikkumisi. Seega on andmeraamide kriitiliselt oluline tunnus puuduvate andmete selgesõnaline haldamine.

3. Andmeallikad

DataFrame toetab laias valikus andmevorminguid ja -allikaid. Seda uurime hiljem selles Pyspark Dataframe'i õpetuse ajaveebis. Nad saavad andmeid võtta erinevatest allikatest.

4. Mitme keele tugi

Sellel on API tugi erinevatele keeltele nagu Python, R, Scala, Java,mis hõlbustab erineva programmeerimistaustaga inimeste kasutamist.

Uute värskenduste saamiseks tellige meie youtube'i kanal ..!

Dataframe'i omadused

  • Andmeraamid on Levitatakse looduses, mis muudab selle tõrketaluvaks ja hästi kättesaadavaks andmete struktuuriks.
  • Laisk hinnang on hindamisstrateegia, mis hoiab avaldise hindamist seni, kuni selle väärtust on vaja. See väldib korduvat hindamist. Laisk hindamine Sparkis tähendab, et käivitamine algab alles siis, kui mõni toiming käivitatakse. Sparkis saab pilt laisast hindamisest siis, kui toimuvad Sädeme teisendused.
  • Andmeraamid on Muutumatu looduses. Muutumatu all mõtlen, et see on objekt, mille olek ei saa muuta pärast selle loomist.Kuid me saame transformeerudaselleväärtusi rakendadeskindelümberkujundamine, nagu RDD-de puhul.

PySparki andmeraami allikad

Andmekaadreid Pysparkis saab luua mitmel viisil:

Andmeid saab laadida a kaudu CSV, JSON, XML või parkettfail. Selle saab luua ka olemasoleva abil RDD ja mis tahes muu andmebaasi kaudu Taru või Cassandra samuti. Samuti võib see sisestada andmeid HDFS-ist või kohalikust failisüsteemist.

Andmekaadri loomine

Liigume selle PySpark Dataframe Tutoriali ajaveebiga edasi ja mõistame, kuidas Dataframe'i luua.

Loome töötaja ja osakonna eksemplare.

from pyspark.sql import * Employee = Rida ('eesnimi', 'perekonnanimi', 'e-post', 'palk') töötaja1 = töötaja ('Basher', 'armbrust', 'bash@edureka.co', 100000) töötaja2 = Töötaja ('Daniel', 'meng', 'daniel@stanford.edu', 120000) töötaja3 = töötaja ('Muriel', pole, 'muriel@waterloo.edu', 140000) töötaja4 = töötaja ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) töötaja5 = töötaja (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (töötaja [0]) print (töötaja3) osakond1 = rida (id = '123456', nimi = 'HR') osakond2 = rida (id = '789012', nimi = 'OPS') osakond3 = rida (id = '345678', nimi = 'FN') osakond4 = rida (id = ' 901234 ', nimi =' DEV ')

Järgmisena loome töötaja ja osakondade eksemplari DepartmentWithEmployees

osakondWithEmployees1 = rida (osakond = osakond1, töötajad = [töötaja1, töötaja2, töötaja5]) osakondTöötajatega2 = rida (osakond = osakond2, töötajad = [töötaja3, töötaja4]) osakondTöötajatega3 = rida (osakond = osakond3, töötajad = [töötaja1, töötaja4, töötaja3 ]) osakondTöötajatega4 = Rida (osakond = osakond4, töötajad = [töötaja2, töötaja3])

Loome oma andmekaader ridade loendist

departemendidWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departementWithEmployees_Seq) kuva (dframe) dframe.show ()

Pyspark Dataframes Näide 1: FIFA World Cupi andmekogum

Siin on võetud FIFA maailmakarika mängijate andmekogum. Laadime need andmed CSV-vormingussisse aandmekaader ja seejärel õpime tundma erinevaid teisendusi ja toiminguid, mida selle andmeraamiga saab teha.

Andmete lugemine CSV-failist

Laadime andmed CSV-failist. Siin hakkame kasutama spark.read.csv meetod andmete laadimiseks kaadrisse fifa_df. Tegelik meetod on spark.read.format [csv / json] .

fifa_df = spark.read.csv ('faili tee / fifa_players.csv', inferSchema = True, päis = True) fifa_df.show ()

Dataframe'i skeem

Heita pilk skeemile st. andmeraami struktuuri jaoks kasutame printSchema meetod. See annab meile erinevad veerud meie andmekaadris koos andmetüübiga ja selle konkreetse veeru tühistatavad tingimused.

fifa_df.printSchema ()

Veergude nimed ja arv (read ja veerg)

Kui tahame heita pilgu konkreetse andmekaadri nimedele ja ridade ja veergude arvule, kasutame järgmisi meetodeid.

fifa_df.columns // Veergude nimed fifa_df.count () // Ridade arv len (fifa_df.columns) // Veergude arv

37784 8

Konkreetse veeru kirjeldamine

Kui tahame vaadata mõne Dataframe'i konkreetse veeru kokkuvõtet, kasutame kirjeldab meetod. See meetod annab meile antud veeru statistilise kokkuvõtte, kui see pole täpsustatud, annab see andmeraami statistilise kokkuvõtte.

on java massiivi objekt
fifa_df.describe ('Coach Name'). show () fifa_df.describe ('Position'). show ()

Mitme veeru valimine

Kui tahame andmeraamist valida teatud veerud, kasutame valige meetod.

fifa_df.select ('Mängija nimi', 'Treeneri nimi'). näita ()

Erinevate mitme veeru valimine

fifa_df.select ('Mängija nimi', 'Treeneri nimi'). eristatav (). näita ()

Andmete filtreerimine

Andmete filtreerimiseks kasutame vastavalt täpsustatud tingimusele filter käsk. Siin filtreerime oma andmekaadrit tingimusel, et vaste ID peab olema võrdne 1096-ga, ja siis arvutame, mitu kirjet / rida on filtreeritud väljundis.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // loenduse saamiseks

Andmete filtreerimine (mitu parameetrit)

Saame oma andmeid filtreerida mitme tingimuse (JA või VÕI) põhjal

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

Andmete sortimine (OrderBy)

Andmete sortimiseks kasutame Telli meetod. Vaikimisi sorteeritakse see kasvavas järjekorras, kuid võime selle muuta ka kahanevas järjekorras.

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

PySparki andmekaadrid Näide 2: superkangelaste andmekogum

Andmete laadimine

Siin laadime andmed samamoodi nagu varem.

Superhero_df = spark.read.csv ('faili tee / superheros.csv', inferSchema = True, päis = True) Superhero_df.show (10)

Andmete filtreerimine

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

Andmete rühmitamine

GroupBy kasutatakse andmekaadri rühmitamiseks määratud veeru põhjal. Siin rühmitame andmeraami veeru Race põhjal ja seejärel nupuga loendama funktsioonist leiame konkreetse võistluse arvu.

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

SQL-päringute sooritamine

Samuti võime SQL-päringuid edastada otse igale andmeraamile, selleks peame andmeraamist looma tabeli, kasutades registerTempTable meetodit ja seejärel kasutage sqlContext.sql () SQL-päringute edastamiseks.

Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('valige * superhero_table'ist'). Show ()

sqlContext.sql ('valige superhero_table'ist eristatav (silmade_värv)'). show ()

sqlContext.sql ('valige superhero_table'ist eristatav (silmade_värv)'). count ()

2. 3

sqlContext.sql ('superhero_table'ist valige max (kaal)'). show ()

Ja sellega jõuame selle PySpark Dataframe'i õpetuse lõpuni.

Nii see on, poisid!

Loodan, et teie said aimu sellest, mis on PySpark Dataframe, miks seda selles PySparki Dataframe'i õpetuse ajaveebis tööstuses kasutatakse ja selle funktsioone. Palju õnne, te ei ole enam Dataframe'i algaja. Kui soovite PySparki kohta lisateavet saada ja mõista erinevaid tööstuse kasutamise juhtumeid, vaadake meie lehte Säde Pythoniga ja PySparki õpetus Ajaveeb.