PySpark-opetusohjelma - Opi Apache Sparkia Pythonin avulla



Tässä PySpark-opetusohjelman blogissa opit PSpark-sovellusliittymästä, jota käytetään Apache Sparkin kanssa työskentelyyn Python-ohjelmointikielellä.

Maailmassa, jossa dataa tuotetaan niin hälyttävällä nopeudella, näiden tietojen oikea analyysi oikeaan aikaan on erittäin hyödyllinen. Apache Spark on yksi upeimmista puitteista suurten tietojen käsittelyyn reaaliajassa ja analyysien suorittamiseen.Yhdessä, tai PySpark on yksi halutuimmista sertifiointikursseista, mikä antaa Scalalle Sparkille juoksun rahoilleen. Joten tässä PySpark-opas keskustelen seuraavista aiheista:





PySpark-opetusohjelma: Mikä on PySpark?

Apache Spark on nopea klusterilaskentakehys, jota käytetään suurten tietojen käsittelyyn, kyselyihin ja analysointiin. Koska se perustuu muistin sisäiseen laskentaan, sillä on etu useisiin muihin suurten datakehysten verrattuna.

PySpark-ominaisuudet - PySpark-opas - Edureka



Alun perin kirjoitettu Scala-ohjelmointikielellä, avoimen lähdekoodin yhteisö on kehittänyt hämmästyttävän työkalun Pythonin tukemiseksi Apache Sparkille. PySpark auttaa datatutkijoita vuorovaikutuksessa Apache Sparkin ja Pythonin RDD: n kanssa kirjastonsa kautta Py4j. On monia ominaisuuksia, jotka tekevät PySparkista paremman kehyksen kuin muut:

java util logging logger -esimerkki
  • Nopeus: Se on sata kertaa nopeampi kuin perinteiset laajamittaiset tietojenkäsittelykehykset
  • Tehokas välimuisti: Yksinkertainen ohjelmointikerros tarjoaa tehokkaat välimuistin ja levyn pysyvyysominaisuudet
  • Käyttöönotto: Voidaan ottaa käyttöön Mesosin, Hadoopin langan tai Sparkin oman klusterinhallinnan kautta
  • Reaaliaika: Reaaliaikainen laskenta ja pieni viive muistin sisäisen laskennan takia
  • Polyglotti: Tukee ohjelmointia Scalassa, Javassa, Pythonissa ja R: ssä

Siirrytään eteenpäin PySpark-opetusblogimme kanssa ja katsotaan, missä Sparkia käytetään teollisuudessa.

PySpark teollisuudessa

Jokainen teollisuus pyörii Big Datan ympärillä ja missä Big Data on, siellä on mukana analyysi. Joten katsotaanpa niitä eri teollisuudenaloja, joilla Apache Sparkia käytetään.



Puoli on yksi suurimmista toimialoista, joka kasvaa kohti online-suoratoistoa. Netflix käyttää Apache Sparkia reaaliaikaiseen suoratoistoon tarjotakseen henkilökohtaisia ​​online-suosituksia asiakkailleen. Se prosessoi 450 miljardia tapahtumia päivässä, jotka kulkevat palvelinpuolen sovelluksiin.

Rahoittaa on toinen ala, jolla Apache Sparkin reaaliaikaisella prosessoinnilla on tärkeä rooli. Pankit käyttävät Sparkia pääsemään ja analysoimaan sosiaalisen median profiileja saadakseen oivalluksia, jotka voivat auttaa heitä tekemään oikeita liiketoimintapäätöksiä luottoriskin arviointi , kohdistetut mainokset ja asiakkaiden segmentointi. Asiakas Churn vähenee myös Sparkin avulla. Petosten havaitseminen on yksi koneoppimisen yleisimmin käytettyjä alueita, joihin Spark liittyy.

Terveydenhuolto palveluntarjoajat käyttävät Apache Sparkia Analysoi potilastiedot yhdessä aiempien kliinisten tietojen kanssa, jotta voidaan tunnistaa, mitkä potilaat todennäköisesti kohtaavat terveysongelmia klinikalta päästämisen jälkeen. Apache Sparkia käytetään Genominen sekvensointi vähentää genomidatan käsittelyyn tarvittavaa aikaa.

Vähittäiskauppa ja verkkokauppa on ala, jossa sitä ei voida kuvitella toimivan ilman analyyseja ja kohdennettua mainontaa. Yksi suurimmista verkkokaupan alustoista tänään Alibaba hoitaa joitain maailman suurimmista Spark-töistä analysoidakseen petatavun dataa. Alibaba esiintyy ominaisuuksien erottaminen kuvatiedoissa. eBay käyttää Apache Sparkia tarjotakseen Kohdennetut tarjoukset , parantaa asiakaskokemusta ja optimoida yleistä suorituskykyä.

Matkustaa Teollisuudenalat käyttävät myös Apache Sparkia. TripAdvisor , johtava matkailusivusto, joka auttaa käyttäjiä suunnittelemaan täydellisen matkan, käyttää Apache Sparkia sen nopeuttamiseen henkilökohtaiset asiakassuositukset .TripAdvisor käyttää apache-kipinää antaakseen neuvoja miljoonille matkustajille vertaamalla satoja verkkosivustoja löytää parhaat hotellihinnat asiakkailleen.

Tärkeä näkökohta tässä PySpark-oppaassa on ymmärtää, miksi meidän on käytettävä Pythonia? Miksi ei Java, Scala tai R?

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


Miksi mennä Pythoniin?

Helppo oppia: Ohjelmoijille Python on suhteellisen helpompi oppia sen syntaksin ja vakiokirjastojen vuoksi. Lisäksi se on dynaamisesti kirjoitettu kieli, mikä tarkoittaa, että RDD: t voivat pitää sisällään monentyyppisiä objekteja.

Laaja kirjastosarja: Scalalla ei ole riittävästi datatieteen työkaluja ja kirjastoja, kuten Python, koneoppimiseen ja luonnollisen kielen käsittelyyn. Lisäksi Scalalta puuttuu hyvä visualisointi ja paikalliset datanmuunnokset.

Valtava yhteisön tuki: Pythonilla on maailmanlaajuinen yhteisö, jossa on miljoonia kehittäjiä, jotka ovat vuorovaikutuksessa verkossa ja offline tuhansissa virtuaalisissa ja fyysisissä paikoissa.

Yksi tärkeimmistä aiheista tässä PySpark-oppaassa on RDD: n käyttö. Ymmärretään, mitkä ovat RDD: t

Spark RDD: t

Kun on kyse iteratiivisesta hajautetusta laskelmasta, toisin sanoen tietojen käsittelystä useissa töissä laskennassa, meidän on käytettävä tietoja uudelleen tai jaettava useiden töiden kesken. Aikaisemmissa kehyksissä, kuten Hadoopissa, oli ongelmia käsiteltäessä useita toimintoja / töitä, kuten

  • Tietojen tallentaminen välitallennustilaan, kuten HDFS
  • Useat I / O-työt tekevät laskutoimituksista hitaita
  • Replikoinnit ja sarjallisuudet tekevät prosessista vielä hitaamman

RDD: t yrittävät ratkaista kaikki ongelmat mahdollistamalla vikasietoiset hajautetut muistin sisäiset laskelmat. RDD on lyhenne sanoista Joustavat hajautetut tietojoukot. RDD on hajautettu muistinotto, jonka avulla ohjelmoijat voivat suorittaa muistin sisäisiä laskelmia suurille klustereille vikasietoisella tavalla. Ne ovat vain luku -kokoelma esineitä osioitu joukko koneita, jotka voidaan rakentaa uudelleen, jos osio menetetään. RDD-levyille suoritetaan useita toimintoja:

  • Muutokset: Muunnokset luovat uuden tietojoukon olemassa olevasta. Laiska arviointi
  • Toiminnot: Spark pakottaa laskelmat suoritettavaksi vain, kun toimintoja kutsutaan RDD-levyille

Ymmärretään muutamia muunnoksia, toimintoja ja toimintoja

Tiedoston lukeminen ja N tärkeimmän elementin näyttäminen:

rdd = sc.textFile ('file: /// home / edureka / Desktop / Sample') rdd.take (n)

Tuotos:

[Metsänhakkuut ovat nousemassa tärkeimmäksi ympäristö- ja sosiaalikysymykseksi, joka on nyt ollut enemmän kuin voimakas demoni. ', u' Meidän on tiedettävä syistä, seurauksista ja tavoista ratkaista metsäkadosta johtuvia ongelmia. ', u'Olemme toimittaneet monia kappaleita, pitkiä ja lyhyitä esseitä metsäkadosta auttaaksemme lapsiasi ja lapsianne tutustumaan ongelmaan sekä osallistumaan essee-kirjoituskilpailuun koulussa tai koulun ulkopuolella. ', u'Voit valita minkä tahansa alla esitetyn metsien hävittämis esseen luokan standardin mukaisesti. ', u'Metsätalous on nousemassa tärkeimmäksi globaaliksi ongelmaksi yhteiskunnalle ja ympäristölle.']

Muuntaminen pieniksi ja jakaminen: (Pienet ja jaetut)

def Func (rivit): rivit = rivit.lower () rivit = rivit.split () palaa rivit rdd1 = rdd.map (Func) rdd1.take (5)

Tuotos:

[[uforestestation ', u'is', u'arising ', u'as', u'the ', u'main', u'environmental ', u'and', u'social ', u'issue ', u'which', u'has ', u'now', u'taken ', ...... . . ]

StopWordsin poistaminen: (Suodatin)

stop_words = ['a', 'all', 'the', 'as', 'is', 'am', 'an', 'ja', 'be', 'been', 'from', 'had' , 'Minä', 'haluaisin', 'miksi', 'kanssa'] rdd2 = rdd1.filter (lambda z: z not in stop_words) rdd2.take (10)

Tuotos:

[uforestestation ', u'arising', u'main ', u'environmental', u'social ', u'issue', u'which ', u'has', u'now ', u'taken' ]

Numeroiden summa 1: stä 500: een: (Pienennä)

sum_rdd = sc.parallelize (alue (1500)) sum_rdd.reduce (lambda x, y: x + y)

Tuotos:

124750

Koneoppiminen PySparkin kanssa

Jatkamme PySpark-opastusblogia, analysoimme joitain BasketBall-tietoja ja teemme joitain ennusteita. Joten tässä aiomme käyttää kaikkien NBA-pelaajien koripallotietoja siitä lähtien 1980 [kolmen osoittimen käyttöönottovuosi].

Tietojen lataus:

df = spark.read.option ('header', 'true') .option ('inferSchema', 'true') .csv ('file: ///home/edureka/Downloads/season_totals.csv')

Sarakkeiden tulostaminen:

heittää tuplan int jaavalle
tulosta (df. sarakkeet)

Tuotos:

['_c0', 'pelaaja', 'pos', 'ikä', 'team_id', 'g', 'gs', 'mp', 'fg', 'fga', 'fg_pct', 'fg3', ' fg3a ',' fg3_pct ',' fg2 ',' fg2a ',' fg2_pct ',' efg_pct ',' ft ',' fta ',' ft_pct ',' orb ',' drb ',' trb ',' ast ' , 'stl', 'blk', 'tov', 'pf', 'pts', 'yr']

Pelaajien (OrderBy) ja toPandojen lajittelu:

Tässä lajittelemme pelaajia kauden pisteiden perusteella.

df.orderBy ('pts', nouseva = False) .limit (10) .toPandas () [['yr', 'pelaaja', 'ikä', 'pts', 'fg3']]

Tuotos:

DSL: n ja matplotlibin käyttäminen:

Tässä analysoidaan keskimääräistä 3 pisteen yritystä kullekin kaudelle 36 min [väli, joka vastaa likimääräistä NBA-peliä, jossa on riittävä lepo]. Laskemme tämän mittarin käyttämällä kolmen pisteen maaliyritysten (fg3a) ja pelattujen minuuttien (mp) lukumäärää ja piirrämme sitten tuloksen matlplotlib .

pyspark.sql.functionsista tuonti col fga_py = df.groupBy ('yr') .agg ({'mp': 'summa', 'fg3a': 'summa'}) .select (col ('yr'), ( 36 * col ('summa (fg3a)') / col ('summa (mp)')). Alias ​​('fg3a_p36m'))) .orderBy ('yr') matplotlib-tuontipyynnöstä plt-tuonnin merisyntyneenä sns plt-tyylinä .use ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Vuosi') _ = plt.title ('Pelaajan keskiarvo 3 pisteen yritykset (36 minuutissa) ') plt. Merkitse (' 3 osoitin lisätty ', xy = (1980, .5), xytext = (1981, 1.1), fontsize = 9, arrowprops = dict (facecolor =' harmaa ', kutistuu = 0, linjan leveys = 2)) plt. merkintä (' NBA siirtyi 3-pisteisellä viivalla '', xy = (1996, 2.4), xytext = (1991.5, 2.7), fontsize = 9, arrowprops = dict (facecolor = 'harmaa', kutistuu = 0, linjan leveys = 2)) plt. huomautus ('NBA siirtyi takaisin 3-pisteiselle viivalle', xy = (1998, 2.), xytext = (1998.5, 2.4), fontsize = 9, nuolipalat = dict (facecolor = 'harmaa', kutistuu = 0, linjan leveys = 2))

Tuotos:

Lineaarinen regressio ja VectorAssembler:

Voimme sovittaa tähän käyrään lineaarisen regressiomallin, jolla mallinnetaan laukausyritysten määrä seuraavien 5 vuoden aikana. Meidän on muunnettava tietomme VectorAssembler-funktion avulla yhdeksi sarakkeeksi. Tämä on vaatimus lineaarisen regressio-API: n suhteen MLlib: ssä.

from pyspark.ml.feature import VectorAssembler t = VectorAssembler (inputCols = ['yr'], outputCol = 'features') koulutus = t.transform (fga_py) .withColumn ('yr', fga_py.yr) .withColumn ('label ', fga_py.fg3a_p36m) training.toPandas (). head ()

Tuotos:

Rakennuksen malli:

Rakennamme sitten lineaarisen regressiomallin objektimme käyttämällä muunnettua dataa.

pyspark.ml.regression-tuonnista LinearRegression lr = LinearRegression (maxIter = 10) malli = lr.fit (harjoittelu)

Koulutetun mallin soveltaminen tietojoukkoon:

Sovellamme koulutettua mallikohteen mallia alkuperäiseen koulutusjoukkoon yhdessä viiden vuoden tulevien tietojen kanssa

rivistä pyspark.sql.types tuonti Rivi # käytä mallia kaudelle 1979-80 kaudelle 2020-21 kaudelle 2020_21 koulutus_yrs = training.select ('yr'). rdd.map (lambda x: x [0]). collect () training_y = training.select ('fg3a_p36m'). rdd.map (lambda x: x [0]). collect () prediction_yrs = [2017, 2018, 2019, 2020, 2021] all_yrs = training_yrs + prediction_yrs # sisäänrakennettu testaus DataFrame test_rdd = sc.parallelize (all_yrs) rivi = Rivi ('yr') & ampamplt all_years_features = t.transform (test_rdd.map (rivi) .toDF ()) # käytä lineaarista regressiomallia df_results = model.transform (all_years_features) .Pandat ()

Lopullisen ennusteen piirtäminen:

Voimme sitten piirtää tulokset ja tallentaa kaavion määritettyyn paikkaan.

c ++ -tapa
plt.plot (df_results.yr, df_results.prediction, linjan leveys = 2, linestyle = '-', color = '# 224df7', label = 'L2 Fit') plt.plot (harjoitusvuodet, koulutus_y, väri = '# f08080 ', label = Ei mitään) plt.xlabel (' Vuosi ') plt.ylabel (' Yritysten lukumäärä ') plt.legend (loc = 4) _ = plt.title (' Pelaajan keskiarvo 3 pisteen yritystä (36 minuutissa) ') plt.tight_layout () plt.savefig (' / home / edureka / Lataukset / Kuvat / REGRESSION.png ')

Tuotos:

Ja tämän kaavion avulla olemme tämän PySpark-opetusblogin lopussa.

Joten tämä on se, Pojat!

Toivon, että teillä on käsitys siitä, mitä PySpark on, miksi Python sopii parhaiten Sparkille, RDD: lle ja vilauksen koneoppimisesta Pysparkin kanssa tässä PySpark-opetusblogissa. Onnittelut, et ole enää PySparkin aloittelija. Jos haluat oppia lisää PySparkista ja ymmärtää erilaisia ​​teollisuuden käyttötapauksia, katso meidän Kipinää Pythonin kanssa Blogi.

Nyt kun olet ymmärtänyt mikä on Pyspark, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edurekan Python Spark -sertifiointikoulutus PySparkia käyttämällä on suunniteltu tarjoamaan sinulle tietoa ja taitoja, joita vaaditaan menestyväksi Spark-kehittäjäksi tulemiseen Pythonin avulla ja valmistautumaan Cloudera Hadoop- ja Spark Developer -sertifiointikokeisiin (CCA175).