Výukový program PySpark - Naučte sa Apache Spark pomocou Pythonu



V tomto blogu o PySpark Tutorial sa dozviete o PSpark API, ktoré sa používa na prácu s Apache Spark pomocou programovacieho jazyka Python.

Vo svete, kde sa údaje generujú takou alarmujúcou rýchlosťou, je veľmi užitočná správna analýza týchto údajov v správnom čase. Jedným z najúžasnejších rámcov na spracovanie veľkých dát v reálnom čase a vykonávanie analýz je Apache Spark.Spolu, alebo PySpark je jedným z najvyhľadávanejších certifikačných kurzov, vďaka ktorému môže Scala pre Spark behať o svoje peniaze. Takže v tomto Výukový program PySpark blogu, budem diskutovať o nasledujúcich témach:





Výukový program pre PySpark: Čo je to PySpark?

Apache Spark je rýchly výpočtový rámec pre klastre, ktorý sa používa na spracovanie, dopytovanie a analýzu veľkých dát. Keďže je založený na výpočte v pamäti, má výhodu oproti niekoľkým ďalším veľkým dátovým rámcom.

Funkcie PySpark - Výukový program PySpark - Edureka



ako sa stať inžinierom

Komunita otvoreného zdroja, ktorá bola pôvodne napísaná v programovacom jazyku Scala, vyvinula úžasný nástroj na podporu Pythonu pre Apache Spark. PySpark pomáha dátovým vedcom komunikovať s RDD v Apache Spark a Python prostredníctvom svojej knižnice Py4j. Existuje veľa funkcií, vďaka ktorým je PySpark lepším rámcom ako iné:

  • Rýchlosť: Je to stokrát rýchlejšie ako tradičné rozsiahle rámce na spracovanie údajov
  • Výkonné ukladanie do pamäte cache: Jednoduchá programovacia vrstva poskytuje výkonné možnosti ukladania do pamäte cache a pretrvávania disku
  • Nasadenie: Možno nasadiť cez Mesos, Hadoop cez Yarn alebo vlastného správcu klastrov Sparku
  • Reálny čas: Výpočet v reálnom čase a nízka latencia z dôvodu výpočtu v pamäti
  • Polyglot: Podporuje programovanie v programoch Scala, Java, Python a R.

Poďme ďalej s naším výukovým blogom PySpark a pozrime sa, kde sa Spark v priemysle používa.

PySpark v priemysle

Každé odvetvie sa točí okolo veľkých dát a kde sú veľké dáta, je do nich zapojená aj analýza. Poďme sa teda pozrieť na rôzne priemyselné odvetvia, kde sa Apache Spark používa.



Polovica je jedným z najväčších priemyselných odvetví rastúcich smerom k online streamovaniu. Netflix používa Apache Spark na spracovanie streamu v reálnom čase na poskytovanie prispôsobených online odporúčaní svojim zákazníkom. Spracováva to 450 miliárd udalostí za deň, ktoré prúdia do aplikácií na strane servera.

Financie je ďalším odvetvím, kde hrá dôležitú úlohu spracovanie v reálnom čase od Apache Spark. Banky používajú Spark na prístup a analýzu profilov sociálnych médií, aby získali informácie, ktoré im môžu pomôcť robiť správne obchodné rozhodnutia pre hodnotenie kreditného rizika , cielené reklamy a segmentácia zákazníkov. Zmätok zákazníka sa tiež redukuje použitím Sparku. Detekcia podvodov je jednou z najbežnejšie používaných oblastí strojového učenia, kde je zapojená spoločnosť Spark.

Zdravotná starostlivosť poskytovatelia používajú Apache Spark na Analyzujte záznamy o pacientoch spolu s minulými klinickými údajmi určiť, ktorí pacienti budú pravdepodobne po prepustení z kliniky čeliť zdravotným problémom. Apache Spark sa používa v Genomické sekvenovanie skrátiť čas potrebný na spracovanie údajov o genóme.

Maloobchod a elektronický obchod je odvetvie, kde si nemožno predstaviť jeho fungovanie bez použitia analýzy a cielenej reklamy. Jedna z najväčších platforiem elektronického obchodu v súčasnosti Alibaba prevádzkuje niektoré z najväčších úloh Spark na svete s cieľom analyzovať petabajty dát. Alibaba predvádza Extrakcia funkcií v obrazových dátach. eBay používa Apache Spark na poskytovanie Cielené ponuky , zlepšujú zákaznícke skúsenosti a optimalizujú celkový výkon.

Cestovanie Industries tiež používajú Apache Spark. TripAdvisor , popredná webová stránka o cestovaní, ktorá pomáha používateľom naplánovať si dokonalý výlet, používa na urýchlenie svojej cesty Apache Spark prispôsobené odporúčania zákazníkov .TripAdvisor používa apache spark na poskytovanie rád miliónom cestujúcich pomocou porovnanie stoviek webov nájsť najlepšie ceny hotelov pre svojich zákazníkov.

Dôležitým aspektom tohto tutoriálu PySpark je pochopiť, prečo musíme ísť na Python? Prečo nie Java, Scala alebo R?

Prihláste sa na odber nášho kanála na YouTube a získajte nové aktualizácie ..!


Prečo ísť na Python?

Ľahko sa učiť: Pre programátorov je program Python porovnateľne ľahší na naučenie vďaka svojej syntaxi a štandardným knižniciam. Navyše je to jazyk s dynamickým typom, čo znamená, že RDD môžu obsahovať objekty viacerých typov.

Obrovská sada knižníc: Scala nemá dostatok nástrojov na vedeckú analýzu údajov a knižníc, ako je Python, na strojové učenie a spracovanie prirodzeného jazyka. Scale navyše chýba dobrá vizualizácia a miestne transformácie údajov.

Obrovská podpora komunity: Python má globálnu komunitu s miliónmi vývojárov, ktorí interagujú online a offline na tisícoch virtuálnych a fyzických umiestnení.

Jednou z najdôležitejších tém tohto tutoriálu PySpark je použitie RDD. Poďme pochopiť, čo sú RDD

Spark RDD

Pokiaľ ide o iteratívne distribuované výpočty, t. J. Spracovanie údajov vo viacerých úlohách vo výpočtoch, musíme údaje opakovane používať alebo zdieľať medzi viacerými úlohami. Predchádzajúce rámce ako Hadoop mali problémy pri riešení viacerých operácií / úloh ako

  • Ukladanie údajov do medzipamäte, napríklad HDFS
  • Vďaka viacerým I / O úlohám sú výpočty pomalé
  • Replikácie a serializácie, vďaka ktorým je proces ešte pomalší

RDD sa snažia vyriešiť všetky problémy povolením chybovo odolných distribuovaných výpočtov v pamäti. RDD je skratka pre Odolné distribuované súbory údajov. RDD je abstrakcia distribuovanej pamäte, ktorá umožňuje programátorom vykonávať výpočty v pamäti pre veľké klastre spôsobom odolným voči chybám. Oni sú zbierka objektov iba na čítanie rozdelené na viac počítačov, ktoré je možné v prípade straty oddielu znovu vytvoriť. Na RDD sa vykonáva niekoľko operácií:

  • Transformácie: Transformáciami sa vytvorí nový súbor údajov z existujúceho. Lenivé hodnotenie
  • Akcie: Spark vynúti vykonanie výpočtov iba vtedy, keď sú na RDD vyvolané akcie

Poďme pochopiť niekoľko transformácií, akcií a funkcií

Čítanie súboru a zobrazenie najdôležitejších prvkov:

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

Výkon:

[u'Odlesňovanie vzniká ako hlavný environmentálny a sociálny problém, ktorý má dnes formu viac ako mocného démona. Musíme vedieť o príčinách, následkoch a spôsoboch riešenia problémov, ktoré sa vyskytli v dôsledku odlesňovania. „,„ Poskytli sme veľa odsekov, dlhé a krátke eseje o odlesňovaní, aby sme vašim deťom a deťom pomohli spoznať problém a zapojili sa do súťaže v písaní esejí v škole alebo mimo školy. ', u'Môžete zvoliť ľubovoľnú esej o odlesňovaní uvedenú nižšie podľa štandardu triedy. „, odlesňovanie vzniká ako hlavný globálny problém pre spoločnosť a životné prostredie.“]

Prevod na malé písmená a rozdelenie: (malé a rozdelené)

def Func (lines): lines = lines.lower () lines = lines.split () return lines rdd1 = rdd.map (Func) rdd1.take (5)

Výkon:

[[u'odlesnenie ', u'is', u'arising ', u'as', u'the ', u'main', u'environmental ', u'and', u'social ', u'issue ', u'ktoré', u'has ', u'now', u'taken ', ...... . . ]

Odstraňujú sa slová stop: (filter)

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

Výkon:

čo znamená dodatok v jave
[u'odlesnenie ', u'arising', u'main ', u'environmental', u'social ', u'issue', u'which ', u'has', u'now ', u'taken' ]

Súčet čísel od 1 do 500: (Znížiť)

sum_rdd = sc.parallelize (rozsah (1 500)) sum_rdd.reduce (lambda x, y: x + y)

Výkon:

124750

Strojové učenie s PySpark

V pokračovaní nášho výukového blogu PySpark analyzujme niektoré údaje BasketBall a urobme budúcu predpoveď. Takže tu budeme od tej doby využívať basketbalové údaje všetkých hráčov NBA 1980 [rok zavedenia 3 ukazovateľov].

Načítanie údajov:

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

Tlač stĺpcov:

print (df.columns)

Výkon:

['_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']

Triedenie hráčov (OrderBy) a toPandas:

Tu triedime hráčov podľa bodov získaných v sezóne.

df.orderBy ('pts', ascending = False) .limit (10) .toPandas () [['yr', 'player', 'age', 'pts', 'fg3']]

Výkon:

Používanie DSL a matplotlib:

Tu analyzujeme priemerný počet 3 bodové pokusy za každú sezónu v časovom limite 36 min [interval zodpovedajúci približne úplnej hre NBA s primeraným odpočinkom]. Túto metriku vypočítame z počtu 3-bodových pokusov o gól v poli (fg3a) a odohraných minút (mp) a výsledok potom vykreslíme pomocou matlplotlib .

z 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') z matplotlib import pyplot ako plt import seaborn ako sns plt.style .use ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Year') _ = plt.title ('Priemer hráča 3-bodové pokusy (za 36 minút) ') plt.annotate (' 3 pointer entered ', xy = (1980, .5), xytext = (1981, 1.1), veľkosť písma = 9, arrowprops = dict (facecolor =' šedá ', shrink = 0, linewidth = 2)) plt.annotate (' NBA moving in 3-point line ', xy = (1996, 2.4), xytext = (1991.5, 2.7), veľkosť písma = 9, arrowprops = dict (facecolor = 'grey', shrink = 0, linewidth = 2)) plt.annotate ('NBA move back 3-point line', xy = (1998, 2.), xytext = (1998.5, 2.4), veľkosť písma = 9, arrowprops = dict (facecolor = 'grey', shrink = 0, linewidth = 2))

Výkon:

Lineárna regresia a VectorAssembler:

Na túto krivku môžeme nasadiť model lineárnej regresie, aby sme modelovali počet pokusov o výstrel na nasledujúcich 5 rokov. Naše údaje musíme transformovať pomocou funkcie VectorAssembler do jedného stĺpca. Toto je požiadavka pre API lineárnej regresie v MLlib.

z 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 ()

Výkon:

prevodník binárnych čísel na desatinné čísla

Model budovy:

Potom pomocou našich transformovaných údajov zostavíme objekt modelu lineárnej regresie.

z pyspark.ml.regression import LinearRegression lr = LinearRegression (maxIter = 10) model = lr.fit (školenie)

Aplikácia trénovaného modelu na množinu údajov:

Náš trénovaný modelový objektový model aplikujeme na našu pôvodnú tréningovú množinu spolu s 5 rokmi budúcich údajov

z pyspark.sql.types import riadku # použiť model pre sezónu 1979-80 cez sezónu 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 # built testing DataFrame test_rdd = sc.parallelize (all_yrs) row = Row ('yr') & ampamplt all_years_features = t.transform (test_rdd.map (riadok) .toDF ()) # použiť lineárny regresný model df_results = model.transform (all_years_features) .toPandas ()

Vynesenie konečnej predikcie:

Potom môžeme vykresliť naše výsledky a uložiť graf na určené miesto.

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 = None) plt.xlabel (' Rok ') plt.ylabel (' Počet pokusov ') plt.legend (loc = 4) _ = plt.title (' Priemerný 3-bodový pokus hráča (za 36 minút) ') plt.tight_layout () plt.savefig (' / home / edureka / Downloads / Images / REGRESSION.png ')

Výkon:

A s týmto grafom sa dostávame na koniec tohto výukového blogu PySpark.

Takže toto je, chlapci!

Dúfam, že ste dostali predstavu o tom, čo je PySpark, prečo je Python najvhodnejší pre Spark, RDD a pohľad na strojové učenie s Pyspark v tomto výučbovom blogu PySpark. Gratulujeme, už nie ste nováčikom v PySpark. Ak sa chcete dozvedieť viac o PySpark a porozumieť rôznym prípadom použitia v priemysle, pozrite si našu Iskrte s Pythonom Blog.

Teraz, keď ste pochopili, čo je Pyspark, sa pozrite na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Edureka’s Výcvik certifikácie Python Spark pomocou PySpark je navrhnutý tak, aby vám poskytol vedomosti a zručnosti potrebné na to, aby ste sa stali úspešným vývojárom Spark pomocou Pythonu, a pripraví vás na certifikačnú skúšku Cloudera Hadoop a Spark Developer Certification Exam (CCA175).