PySpark Dataframe Tutorial - PySpark-ohjelmointi datakehyksillä



Tässä PySpark Dataframe -opetusblogissa opit Apache Sparkin muutoksista ja toiminnoista useilla esimerkeillä.

Datakehykset ovat nykyään teollisuuden muotisana. Ihmiset pyrkivät käyttämään sitä suosituilla kielillä, joita käytetään tietojen analysointiin, kuten Python, Scala ja R.Lisäksi ilmeisen tarpeen käsitellä monimutkaisia ​​analyyseja ja munging-tehtäviä Big Data, Python for Spark tai on tullut yksi halutuimmista taidoista tällä hetkellä.Joten miksi kaikki käyttävät sitä niin paljon? Ymmärretään tämä meidän PySpark Dataframe -opastus blogi. Tässä blogissa käsittelen seuraavia aiheita:





PySpark Dataframe -opetusohjelma: Mitä tietokehykset ovat?

Datakehykset viittaavat yleensä tietorakenteeseen, joka on luonteeltaan taulukkomuotoinen. Se edustaa rivejä, joista kukin koostuu useista havainnoista. Riveillä voi olla useita tietomuotoja ( Heterogeeninen ), kun taas sarakkeessa voi olla samantyyppisiä tietoja ( Homogeeninen ). Tietokehykset sisältävät yleensä joitain metatietoja tietojen lisäksi, esimerkiksi sarakkeiden ja rivien nimet.

Dataframe-Pyspark-Dataframe-Tutorial



Voimme sanoa, että tietokehykset eivät ole mitään, mutta kaksiulotteinen tietorakenne, samanlainen kuin SQL-taulukko tai laskentataulukko. Siirrytään nyt eteenpäin tämän PySpark Dataframe -opetusohjelman avulla ja ymmärretään, miksi tarvitsemme juuri Pyspark Dataframe -ohjelmaa?

Miksi tarvitsemme datakehyksiä?

1.Jäsenneltyjen ja osittain jäsenneltyjen tietojen käsittely



Datakehykseton suunniteltu käsittelemäänettä suuri sekä jäsenneltyjen että puolirakenteisten tietojen kerääminen . Spark DataFrame -havainnot on järjestetty nimettyihin sarakkeisiin, mikä auttaa Apache Sparkia ymmärtämään DataFrame-mallin kaavaa. Tämä auttaa Sparkia optimoimaan näiden kyselyjen toteutussuunnitelman. Se voi myös käsitellä Petatavua tietoja.

2.S lisensointi ja kuutiointi

Tietokehys API: t tukevat yleensä kehittyneitä menetelmiä viipalointi ja kuutiointi tiedot. Se sisältääoperaations, kuten rivien, sarakkeiden ja solujen valitseminen nimen tai numeron mukaan, rivien suodattaminen jne. Tilastotiedot ovat yleensä hyvin sotkuisia ja sisältävät paljon puuttuvia ja vääriä arvoja ja alueiden rikkomuksia. Joten tietokehysten kriittisesti tärkeä piirre on puuttuvien tietojen selkeä hallinta.

3. tietolähteet

DataFrame tukee monenlaisia ​​tietomuotoja ja lähteitä. Tarkastelemme tätä myöhemmin tässä Pyspark Dataframe Tutorial -blogissa. He voivat ottaa vastaan ​​tietoja eri lähteistä.

4. tuki monille kielille

Sillä on API-tuki eri kielille, kuten Python, R, Scala, Java,mikä helpottaa eri ohjelmointitaustan omaavien ihmisten käyttöä.

Tilaa youtube-kanavamme saadaksesi uusia päivityksiä ..!

Datakehysten ominaisuudet

  • Datakehykset ovat Hajautettu luonnossa, mikä tekee siitä vikasietoisen ja hyvin saatavan tietorakenteen.
  • Laiska arviointi on arviointistrategia, joka pitää lausekkeen arviointia, kunnes sen arvoa tarvitaan. Se välttää toistuvan arvioinnin. Laiska arviointi Sparkissa tarkoittaa, että suoritus alkaa vasta, kun toiminto käynnistetään. Sparkissa kuva laiskasta arvioinnista tulee, kun Spark-muunnokset tapahtuvat.
  • Datakehykset ovat Muuttumaton luonnossa. Muuttamattomalla tarkoitan sitä, että se on esine, jonka tila on ei voi muokata sen luomisen jälkeen.Mutta voimme muuttaasenarvot soveltamallatiettymuutos, kuten RDD: ssä.

PySpark-tietokehyslähteet

Datakehykset Pysparkissa voidaan luoda useilla tavoilla:

Tiedot voidaan ladata a: n kautta CSV, JSON, XML tai parkettitiedosto. Se voidaan luoda myös olemassa olevalla RDD ja minkä tahansa muun tietokannan kautta Pesä tai Cassandra yhtä hyvin. Se voi myös viedä tietoja HDFS: stä tai paikallisesta tiedostojärjestelmästä.

Datakehyksen luominen

Siirrytään eteenpäin tämän PySpark Dataframe Tutorial -blogin kanssa ja ymmärretään, miten datakehykset luodaan.

Luomme työntekijöiden ja osastojen instansseja.

pyspark.sql-tuonnista * Työntekijä = Rivi ('etunimi', 'sukunimi', 'sähköposti', 'palkka') työntekijä1 = työntekijä ('Basher', 'käsivarsi', 'bash@edureka.co', 100000) työntekijä2 = Työntekijä ('Daniel', 'meng', 'daniel@stanford.edu', 120000) työntekijä3 = työntekijä ('Muriel', ei kukaan, 'muriel@waterloo.edu', 140000) työntekijä4 = työntekijä ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) työntekijä5 = työntekijä (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) tulosta (työntekijä [0]) tulosta (työntekijä3) osasto1 = rivi (tunnus) = '123456', nimi = 'HR') osasto2 = Rivi (id = '789012', nimi = 'OPS') osasto3 = Rivi (id = '345678', nimi = 'FN') osasto4 = Rivi (id = ' 901234 ', nimi =' DEV ')

Seuraavaksi luomme DepartmentWithEmployees-instanssin työntekijästä ja osastoista

departmentWithEmployees1 = rivi (osasto = department1, työntekijät = [työntekijä1, työntekijä2, työntekijä5]) departmentWithEmployees2 = rivi (osasto = osasto2, työntekijät = [työntekijä3, työntekijä4]) osastoWithEmployees3 = rivi (osasto = osasto3, työntekijät = [työntekijä1, työntekijä4, työntekijä3) ]) osastoWithEmployees4 = rivi (osasto = osasto4, työntekijät = [työntekijä2, työntekijä3])

Luodaan tietokehyksemme riviluettelosta

departmentsWithEmployees_Seq = [osastoWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departementitWithEmployees_Seq) -näyttö (dframe) dframe.show ()

Pyspark Dataframes Esimerkki 1: FIFA World Cup -tietojoukko

Tässä olemme ottaneet FIFA World Cup Players -tietojoukon. Aiomme ladata nämä tiedot, jotka ovat CSV-muodossaosaksi adatakehys ja sitten opimme erilaisista muunnoksista ja toiminnoista, jotka voidaan suorittaa tällä datakehyksellä.

Tietojen lukeminen CSV-tiedostosta

Ladataan tiedot CSV-tiedostosta. Täällä aiomme käyttää spark.read.csv menetelmä tietojen lataamiseksi datakehykseen fifa_df. Varsinainen menetelmä on spark.read.format [csv / json] .

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

Datakehyksen kaavio

Katsomaan skeemaa eli. datakehyksen rakennetta käytämme printSchema menetelmä. Tämä antaa meille tietokehyksen eri sarakkeet, tietotyypin ja kyseisen sarakkeen mitätöitävät ehdot.

fifa_df.printSchema ()

Sarakkeiden nimet ja lukumäärä (rivit ja sarake)

Kun haluamme tarkastella tietyn kehyksen nimiä ja rivien ja sarakkeiden lukumäärää, käytämme seuraavia menetelmiä.

fifa_df.columns // Sarakkeiden nimet fifa_df.count () // Rivien määrä len (fifa_df.columns) // Sarakkeiden määrä

37784 8

Tietyn sarakkeen kuvaaminen

Jos haluamme katsoa yhteenvedon tietystä kehyksen sarakkeesta, käytämme kuvaa menetelmä. Tämä menetelmä antaa meille tilastollisen yhteenvedon annetusta sarakkeesta, ellei sitä ole määritelty, se tarjoaa datakehyksen tilastollisen yhteenvedon.

erot hashmapin ja hashtabelin välillä
fifa_df.describe ('Coach Name'). show () fifa_df.describe ('Position'). show ()

Useiden sarakkeiden valitseminen

Jos haluamme valita tietyt sarakkeet datakehyksestä, käytämme valitse menetelmä.

fifa_df.select ('Pelaajan nimi', 'Valmentajan nimi'). show ()

Erillisten useiden sarakkeiden valitseminen

fifa_df.select ('Pelaajan nimi', 'Valmentajan nimi'). erillinen (). näytä ()

Suodatetaan tietoja

Suodataksesi tiedot määritetyn ehdon mukaan käytämme suodattaa komento. Suodatamme tässä datakehyksemme ehdon perusteella, että osumatunnuksen on oltava yhtä suuri kuin 1096, ja sitten laskemme, kuinka monta tietuetta / riviä suodatetussa lähdössä on.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // saadaksesi määrän

Tietojen suodatus (useita parametreja)

Voimme suodattaa tietomme useiden ehtojen (AND tai OR) perusteella

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

Tietojen lajittelu (OrderBy)

Lajittelemaan tietoja käytämme Tilaa menetelmä. Oletuksena se lajittelee nousevassa järjestyksessä, mutta voimme muuttaa sen myös laskevaan järjestykseen.

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

PySpark-tietokehykset Esimerkki 2: Superheros-tietojoukko

Ladataan tietoja

Tässä lataamme tiedot samalla tavalla kuin aiemmin.

Superhero_df = spark.read.csv ('tiedoston polku / superheros.csv', inferSchema = True, header = True) Supersankari_df.show (10)

Tietojen suodattaminen

Supersankari_df.suodatin (Supersankari_df.Sukupuoli == 'Mies') .määrä () // Mies Heroslaskuri Supersankari_df.filter (Supersankari_df.Sukupuoli == 'Nainen') .määrä () // Nainen Herosmäärä

Tietojen ryhmittely

GroupBy käytetään ryhmittelemään datakehystä määritetyn sarakkeen perusteella. Tässä ryhmittelemme datakehyksen Race-sarakkeen ja sitten Kreivi toiminnon, voimme löytää tietyn rodun määrän.

Race_df = Supersankari_df.groupby ('Race'). Määrä (). Show ()

SQL-kyselyjen suorittaminen

Voimme myös siirtää SQL-kyselyt suoraan mille tahansa datakehykselle, jota varten meidän on luotava taulukko datakehyksestä käyttämällä registerTempTable -menetelmää ja käytä sitten sqlContext.sql () siirtää SQL-kyselyt.

Superhero_df.registerTempTable ('supersankari_taulukko') sqlContext.sql ('valitse * joukosta superhero_table'). Show ()

sqlContext.sql ('valitse erillinen (Silmien väri) supersankaritaulukosta'). show ()

sqlContext.sql ('valitse erillinen (Silmien_väri) supersankaritaulukosta'). count ()

2. 3

sqlContext.sql ('valitse max (Paino) supersankaritaulukosta'). show ()

Ja tämän myötä olemme päässeet tämän PySpark Dataframe -opetusohjelman loppuun.

Joten tämä on se, Pojat!

Toivottavasti teillä on käsitys siitä, mitä PySpark Dataframe on, miksi sitä käytetään teollisuudessa ja sen ominaisuuksista tässä PySpark Dataframe -opetusblogissa. Onnittelut, et ole enää aloittelija Dataframeille. Jos haluat oppia lisää PySparkista ja ymmärtää erilaisia ​​teollisuuden käyttötapauksia, katso meidän Kipinää Pythonin kanssa ja PySpark-opas Blogi.