Vadnica za PySpark - Naučite se Apache Spark z uporabo Pythona



V tem blogu o vajah za PySpark boste izvedeli več o API-ju PSpark, ki se uporablja za delo z Apache Spark z uporabo programskega jezika Python.

V svetu, kjer se podatki ustvarjajo s tako zaskrbljujočo hitrostjo, je pravilna analiza teh podatkov ob pravem času zelo koristna. Eden najbolj neverjetnih okvirov za obdelavo velikih podatkov v realnem času in izvajanje analiz je Apache Spark.Skupaj, ali PySpark je eden najbolj iskanih certifikacijskih tečajev, ki Scali za Spark daje denar za svoj denar. Torej v tem Vadnica za PySpark blog, bom razpravljal o naslednjih temah:





Vadnica za PySpark: Kaj je PySpark?

Apache Spark je hiter računalniški okvir za grozde, ki se uporablja za obdelavo, poizvedovanje in analizo velikih podatkov. Ker temelji na izračunu v pomnilniku, ima prednost pred več drugimi okviri za velike podatke.

Značilnosti PySparka - Vadnica za PySpark - Edureka



Prvotno napisana v programskem jeziku Scala je odprtokodna skupnost razvila neverjetno orodje za podporo Pythona za Apache Spark. PySpark v svoji knjižnici pomaga podatkovnim znanstvenikom, da se povežejo z RDD-ji v Apache Spark in Python Py4j. Obstaja veliko funkcij, zaradi katerih je PySpark boljši okvir od drugih:

  • Hitrost: Je 100-krat hitrejši od tradicionalnih obsežnih okvirov za obdelavo podatkov
  • Zmogljivo predpomnjenje: Preprosta plast za programiranje nudi zmogljive zmogljivosti predpomnjenja in trajanja diska
  • Uvajanje: Lahko se namesti prek Mesosa, Hadoopa prek Preje ali Sparkovega lastnega upravitelja grozdov
  • V realnem času: Izračun v realnem času in nizka zakasnitev zaradi računanja v pomnilniku
  • Poliglot: Podpira programiranje v Scala, Java, Python in R

Pojdimo naprej z našim blogom za vadnice PySpark in poglejmo, kje se Spark uporablja v industriji.

PySpark v industriji

Vsaka panoga se vrti okoli velikih podatkov in tam, kjer obstajajo veliki podatki, je vključena tudi analiza. Oglejmo si torej različne panoge, v katerih se uporablja Apache Spark.



dobite dolžino polja v javascriptu

Pol je ena največjih panog, ki raste v smeri spletnega pretakanja. Netflix uporablja Apache Spark za obdelavo tokov v realnem času, da svojim strankam nudi prilagojena spletna priporočila. Obdeluje 450 milijard dogodki na dan, ki se pretakajo v strežniške programe.

Finance je še en sektor, kjer ima obdelava Apache Spark v realnem času pomembno vlogo. Banke uporabljajo Spark za dostop in analizo profilov v družabnih omrežjih ter pridobivanje vpogledov, ki jim lahko pomagajo pri pravilnih poslovnih odločitvah oceno kreditnega tveganja , ciljni oglasi in segmentacija strank. Odbitek strank se zmanjša tudi z uporabo Spark. Odkrivanje prevar je eno najpogosteje uporabljenih področij strojnega učenja, kjer sodeluje Spark.

Skrb za zdravje ponudniki uporabljajo Apache Spark za Analizirajte evidence bolnikov skupaj s preteklimi kliničnimi podatki za ugotavljanje, kateri bolniki se po odpustu iz klinike verjetno soočajo z zdravstvenimi težavami. Apache Spark se uporablja v Genomsko zaporedje za zmanjšanje časa, potrebnega za obdelavo podatkov o genomu.

Trgovina na drobno in elektronsko poslovanje je panoga, v kateri si ne moremo predstavljati, da deluje brez uporabe analiz in ciljnega oglaševanja. Ena največjih platform za e-poslovanje danes Alibaba vodi nekaj največjih Spark Jobs na svetu za analizo petabajtov podatkov. Alibaba nastopa ekstrakcija lastnosti v slikovnih podatkih. eBay za zagotavljanje uporablja Apache Spark Ciljne ponudbe , izboljšati uporabniško izkušnjo in optimizirati splošno uspešnost.

Potovanje Industrije uporabljajo tudi Apache Spark. TripAdvisor , vodilno spletno mesto za potovanja, ki uporabnikom pomaga načrtovati popolno potovanje, uporablja Apache Spark, da ga pospeši prilagojena priporočila strank .TripAdvisor uporablja apache spark za svetovanje milijonom popotnikov primerjava na stotine spletnih mest najti najboljše hotelske cene za svoje stranke.

Pomemben vidik te vadnice PySpark je razumeti, zakaj moramo iti za Python? Zakaj ne Java, Scala ali R?

Naročite se na naš youtube kanal in prejemajte nove posodobitve ..!


Zakaj iti za Python?

Preprosto za učenje: Za programerje je Python razmeroma enostavnejši za učenje zaradi svoje sintakse in standardnih knjižnic. Poleg tega gre za dinamično natipkan jezik, kar pomeni, da lahko RDD vsebujejo predmete več vrst.

Širok nabor knjižnic: Scala nima zadostnih orodij in knjižnic, kot je Python, za strojno učenje in obdelavo naravnih jezikov. Poleg tega Scala nima dobre vizualizacije in lokalnih transformacij podatkov.

Ogromna podpora skupnosti: Python ima globalno skupnost z milijoni razvijalcev, ki komunicirajo v spletu in zunaj njih na tisočih virtualnih in fizičnih lokacijah.

Ena najpomembnejših tem v tej vaji za PySpark je uporaba RDD-jev. Razumejmo, kaj so RDD

Spark RDD

Ko gre za iterativno porazdeljeno računalništvo, torej obdelavo podatkov na več opravilih v izračunih, moramo podatke ponovno uporabiti ali deliti med več opravili. Prejšnji okviri, kot je Hadoop, so imeli težave pri obravnavanju več operacij / opravil, kot je

  • Shranjevanje podatkov v vmesnem pomnilniku, kot je HDFS
  • Več vhodno / izhodnih opravil upočasni izračune
  • Podvajanja in serializacije, zaradi česar je postopek še počasnejši

RDD-ji poskušajo rešiti vse težave tako, da omogočijo odporne porazdeljene izračune v pomnilniku. RDD je okrajšava za Prožni porazdeljeni nabori podatkov. RDD je porazdeljena abstrakcija pomnilnika, ki programerjem omogoča izvedbo izračunov v pomnilniku na velikih gručah na odporen način. So zbirka predmetov samo za branje razdeljen na nabor strojev, ki jih je mogoče obnoviti, če se particija izgubi. Na RDD se izvaja več operacij:

  • Preobrazbe: Transformacije ustvarijo nov nabor podatkov iz obstoječega. Leno vrednotenje
  • Dejanja: Spark prisili izračune za izvedbo le, kadar se na RDD prikličejo dejanja

Razumejmo nekaj transformacij, dejanj in funkcij

Branje datoteke in prikaz Top n elementov:

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

Izhod:

[u 'Krčenje gozdov se pojavlja kot glavno okoljsko in socialno vprašanje, ki je danes dobilo obliko več kot močnega demona. ', u' Vedeti moramo o vzrokih, posledicah in načinih za reševanje težav, ki so nastale zaradi krčenja gozdov. ', u' Priskrbeli smo številne odstavke, dolge in kratke eseje o krčenju gozdov, da bi se vaši otroci in otroci lažje seznanili s problemom in se udeležili tekmovanja v pisanju esejev v šoli ali zunaj šole. ', u' V skladu s standardom razreda lahko izberete kateri koli spodnji esej o krčenju gozdov. ', u' Krčenje gozdov je glavni globalni problem družbe in okolja. ']

Pretvorba v male črke in delitev: (spodnja in razdeljena)

def Func (vrstice): vrstice = vrstice.nižje () vrstice = črte.split () povratne črte rdd1 = rdd.map (Func) rdd1.take (5)

Izhod:

[[u'deforestation ', u'is', u'arising ', u'as', u'the ', u'main', u'environmental ', u'and', u'social ', u'issue ', kaj', u 'ima', u'now ', u'taken', ..... . . ]

Odstranjevanje StopWords: (Filter)

stop_words = ['a', 'all', 'the', 'as', 'is', 'am', 'an', 'in', 'be', 'been', 'from', 'had' , 'I', 'I', 'why', 'with'] rdd2 = rdd1.filter (lambda z: z ni v stop_words) rdd2.take (10)

Izhod:

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

Vsota števil od 1 do 500: (Zmanjšaj)

sum_rdd = sc.parallelize (obseg (1.500)) sum_rdd.reduce (lambda x, y: x + y)

Izhod:

124750

Strojno učenje s PySparkom

V nadaljevanju našega spletnega dnevnika za vadnice PySpark analizirajmo nekaj BasketBall podatkov in naredimo nekaj napovedi v prihodnosti. Torej, tu bomo uporabili košarkarske podatke vseh igralcev NBA od takrat 1980 [leto uvedbe 3 kazalcev].

Nalaganje podatkov:

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

Tiskanje stolpcev:

tiskanje (df. stolpci)

Izhod:

['_c0', 'player', 'pos', 'age', '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']

Razvrščanje igralcev (OrderBy) in do Pandas:

Tu razvrščamo igralce glede na točko v sezoni.

df.orderBy ('pts', naraščajoče = False) .limit (10) .toPandas () [['yr', 'player', 'age', 'pts', 'fg3']]

Izhod:

Uporaba DSL in matplotlib:

Tu analiziramo povprečno število Poskusi s tremi točkami za vsako sezono v časovnem obdobju 36 min [interval, ki ustreza približni polni tekmi NBA z ustreznim počitkom]. To metriko izračunamo s številom poskusov zadetkov s 3 točkami (fg3a) in odigranimi minutami (mp), nato pa rezultat narišemo z uporabo matlplotlib .

iz pyspark.sql.functions import col fga_py = df.groupBy ('yr') .agg ({'mp': 'sum', 'fg3a': 'sum'}) .select (col ('yr'), ( 36 * col ('sum (fg3a)') / col ('sum (mp)')). Alias ​​('fg3a_p36m')) .orderBy ('yr') iz matplotlib import pyplot as plt import seaborn as sns plt.style .use ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Leto') _ = plt.title ('Povprečje igralca Poskusi s tremi točkami (na 36 minut) ') plt.annotate (' 3 uveden kazalec ', xy = (1980, .5), xytext = (1981, 1.1), fontsize = 9, arrowprops = dict (facecolor =' grey ', skrči = 0, širina črte = 2)) plt.annotate (' NBA premaknjena v črto s tremi točkami ', xy = (1996, 2.4), xytext = (1991.5, 2.7), fontsize = 9, arrowprops = dict (facecolor = 'siva', skrči = 0, širina črte = 2)) plt.annotate ('NBA se je premaknila nazaj s tristočkovno črto', xy = (1998, 2.), xytext = (1998.5, 2.4), fontsize = 9, arrowprops = dict (barva obraza = 'siva', skrči = 0, širina črte = 2))

Izhod:

Linearna regresija in VectorAssembler:

Na to krivuljo lahko namestimo model linearne regresije, ki bo modeliral število poskusov posnetka v naslednjih 5 letih. Svoje podatke moramo s pomočjo funkcije VectorAssembler pretvoriti v en stolpec. To je a zahteva za API linearne regresije v MLlib.

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

Izhod:

Model zgradbe:

Nato z uporabo transformiranih podatkov izdelamo objekt modela linearne regresije.

iz pyspark.ml.regression import LinearRegression lr = LinearRegression (maxIter = 10) model = lr.fit (trening)

Uporaba usposobljenega modela za nabor podatkov:

Naš izurjeni modelni objektni model uporabljamo za naš prvotni nabor vadb skupaj s petimi leti prihodnjih podatkov

iz pyspark.sql.types import Vrstica # uporabi model za sezono 1979-80 do sezone 2020-21 training_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 # zgrajeno testiranje DataFrame test_rdd = sc.parallelize (all_yrs) row = Row ('yr') & ampamplt all_years_features = t.transform (test_rdd.map (row) .toDF ()) # uporabi model linearne regresije df_results = model.transform (all_years_features) .toPandas ()

Izris končne napovedi:

kako uporabiti brskalnik db za

Nato lahko narišemo rezultate in graf shranimo na določeno mesto.

plt.plot (df_results.yr, df_results.prediction, linewidth = 2, linestyle = '-', color = '# 224df7', label = 'L2 Fit') plt.plot (training_yrs, training_y, color = '# f08080 ', label = Brez) plt.xlabel (' Leto ') plt.ylabel (' Število poskusov ') plt.legend (loc = 4) _ = plt.title (' Povprečni poskus igralca s tremi točkami (na 36 minut) ') plt.tight_layout () plt.savefig (' / home / edureka / Downloads / Images / REGRESSION.png ')

Izhod:

In s tem grafom smo prišli do konca tega bloga za vadnice PySpark.

Torej, to je to, fantje!

Upam, da ste dobili idejo o tem, kaj je PySpark, zakaj je Python najbolj primeren za Spark, RDD-je in vpogled v strojno učenje s Pysparkom v tem blogu z vadnicami za PySpark. Čestitamo, niste več novinec v PySparku. Če želite izvedeti več o PySparku in razumeti različne primere uporabe v industriji, si oglejte naš Iskrica s Pythonom Spletni dnevnik.

Zdaj, ko ste razumeli, kaj je Pyspark, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Edureka Usposabljanje za certificiranje Python Spark z uporabo PySparka je zasnovan tako, da vam zagotavlja znanje in veščine, ki so potrebni, da postanete uspešen razvijalec iskri, ki uporablja Python, in vas pripravi na izpit za certifikacijo Cloudera Hadoop in Spark Developer (CCA175).