Výukový program PySpark - Naučte se Apache Spark pomocí Pythonu



V tomto blogu na PySpark Tutorial se dozvíte o PSpark API, které se používá pro práci s Apache Spark pomocí programovacího jazyka Python.

Ve světě, kde jsou data generována s takovou alarmující rychlostí, je správná analýza těchto dat ve správný čas velmi užitečná. Jedním z nejúžasnějších frameworků pro zpracování velkých dat v reálném čase a provádění analýz je Apache Spark.Spolu, nebo PySpark je jedním z nejvyhledávanějších certifikačních kurzů, díky kterému si Scala pro Spark vybere peníze. Takže v tomto Výukový program PySpark blogu, budu diskutovat o následujících tématech:





Výukový program PySpark: Co je PySpark?

Apache Spark je rychlý výpočetní rámec pro cluster, který se používá ke zpracování, dotazování a analýze velkých dat. Je založen na výpočtu v paměti a má výhodu oproti několika dalším rámcům velkých dat.

Funkce PySpark - Výukový program PySpark - Edureka



rozdíl mezi přepsáním a přetížením v Javě

Komunita open source, původně napsaná v programovacím jazyce Scala, vyvinula úžasný nástroj na podporu Pythonu pro Apache Spark. PySpark pomáhá datovým vědcům komunikovat s RDD v Apache Spark a Python prostřednictvím své knihovny Py4j. Existuje mnoho funkcí, díky nimž je PySpark lepším frameworkem než ostatní:

  • Rychlost: Je to stokrát rychlejší než tradiční rozsáhlé rámce pro zpracování dat
  • Výkonné ukládání do mezipaměti: Jednoduchá programovací vrstva poskytuje výkonné možnosti ukládání do mezipaměti a vytrvalosti disku
  • Rozvinutí: Lze nasadit přes Mesos, Hadoop přes Yarn nebo vlastního správce klastrů Sparku
  • Reálný čas: Výpočet v reálném čase a nízká latence kvůli výpočtu v paměti
  • Polyglot: Podporuje programování ve Scale, Javě, Pythonu a R.

Pojďme posunout vpřed s naším výukovým blogem PySpark a podívejme se, kde se Spark v tomto odvětví používá.

PySpark v průmyslu

Každé odvětví se točí kolem velkých dat a tam, kde jsou velká data, zahrnuje i analýzu. Pojďme se tedy podívat na různá průmyslová odvětví, kde se Apache Spark používá.



Polovina je jedním z největších odvětví rostoucích směrem k online streamování. Netflix používá Apache Spark pro zpracování streamů v reálném čase k poskytování personalizovaných online doporučení svým zákazníkům. Zpracovává to 450 miliard události za den, které plynou do aplikací na straně serveru.

Finance je další sektor, kde hraje důležitou roli zpracování v reálném čase Apache Spark. Banky používají Spark k přístupu a analýze profilů sociálních médií, aby získaly informace, které jim mohou pomoci při správném obchodním rozhodování hodnocení úvěrového rizika , cílené reklamy a segmentace zákazníků. Churn zákazníka se také snižuje pomocí Sparku. Detekce podvodů je jednou z nejpoužívanějších oblastí strojového učení, kde je Spark zapojen.

Zdravotní péče poskytovatelé používají Apache Spark Analyzujte záznamy o pacientech spolu s minulými klinickými údaji identifikovat, kteří pacienti pravděpodobně budou po propuštění z kliniky čelit zdravotním problémům. Apache Spark se používá v Genomické sekvenování ke zkrácení doby potřebné ke zpracování údajů o genomu.

Maloobchod a elektronický obchod je odvětví, kde si nelze představit jeho provoz bez použití analýzy a cílené reklamy. Jedna z největších platforem elektronického obchodování v současnosti Alibaba provozuje některé z největších Spark Jobů na světě za účelem analýzy petabajtů dat. Alibaba provádí extrakce funkcí v obrazových datech. eBay používá Apache Spark k poskytování Cílené nabídky , zlepšit zákaznickou zkušenost a optimalizovat celkový výkon.

Cestovat Industries také používají Apache Spark. TripAdvisor , přední cestovní web, který pomáhá uživatelům naplánovat perfektní cestu, používá Apache Spark k urychlení osobní doporučení zákazníků .TripAdvisor používá apache spark k poskytování poradenství milionům cestujících porovnání stovek webových stránek najít nejlepší ceny hotelů pro své zákazníky.

Důležitým aspektem tohoto tutoriálu PySpark je pochopit, proč musíme jít na Python? Proč ne Java, Scala nebo R?

Přihlaste se k odběru našeho kanálu na YouTube a získejte nové aktualizace ..!


Proč jít na Python?

Jednoduché se naučit: Pro programátory je program Python poměrně jednodušší naučit se díky své syntaxi a standardním knihovnám. Navíc se jedná o dynamicky psaný jazyk, což znamená, že RDD mohou obsahovat objekty několika typů.

Obrovská sada knihoven: Scala nemá dostatečné nástroje pro vědu o datech a knihovny jako Python pro strojové učení a zpracování přirozeného jazyka. Scale navíc chybí dobrá vizualizace a místní transformace dat.

Obrovská podpora komunity: Python má globální komunitu s miliony vývojářů, kteří interagují online a offline na tisících virtuálních a fyzických míst.

Jedním z nejdůležitějších témat v tomto výukovém programu PySpark je použití RDD. Pojďme pochopit, co jsou RDD

Spark RDD

Pokud jde o iterativní distribuované výpočty, tj. Zpracování dat ve více úlohách ve výpočtech, musíme data znovu použít nebo sdílet mezi více úlohami. Dřívější rámce jako Hadoop měly problémy při řešení více operací / úloh jako

  • Ukládání dat do mezipaměti, jako je HDFS
  • Díky více I / O úlohám jsou výpočty pomalé
  • Replikace a serializace, díky nimž je proces ještě pomalejší

RDD se snaží vyřešit všechny problémy povolením distribuovaných výpočtů v paměti odolných proti chybám. RDD je zkratka Odolné distribuované datové sady. RDD je abstrakce distribuované paměti, která umožňuje programátorům provádět výpočty v paměti na velkých klastrech způsobem odolným proti chybám. Jsou to kolekce objektů jen pro čtení rozdělené na více počítačů, které lze přestavět, pokud dojde ke ztrátě oddílu. Na RDD se provádí několik operací:

  • Transformace: Transformace vytvoří ze stávajícího nový datový soubor. Líné hodnocení
  • Akce: Spark vynutí výpočty k provedení pouze v případě, že jsou na RDD vyvolány akce

Pojďme pochopit několik transformací, akcí a funkcí

Čtení souboru a zobrazení nejdůležitějších prvků:

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

Výstup:

[u'Odlesňování vzniká jako hlavní environmentální a sociální problém, který nyní má podobu více než mocného démona. ', u'Musíme vědět o příčinách, následcích a způsobech řešení problémů vzniklých v důsledku odlesňování. ', u'Poskytli jsme mnoho odstavců, dlouhou a krátkou esej o odlesňování, abychom pomohli vašim dětem a dětem seznámit se s tímto problémem a zúčastnit se soutěže o psaní eseje ve škole nebo mimo školu. ', u'Můžete vybrat libovolnou esej o odlesňování uvedenou níže podle třídního standardu. „, odlesňování vzniká jako hlavní globální problém pro společnost a životní prostředí.“]

Převod na malá písmena a rozdělení: (malá a rozdělená)

def Func (řádky): lines = lines.lower () lines = lines.split () zpětné řádky rdd1 = rdd.map (Func) rdd1.take (5)

Výstup:

[[u'odlesňování ', 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', ...... . . ]

Odebrání stop slova: (filtr)

stop_words = ['a', 'all', 'the', 'as', 'is', 'am', 'an', 'a', 'be', 'been', 'from', 'had' , 'I', 'já', 'proč', 's'] rdd2 = rdd1.filter (lambda z: z není v stop_words) rdd2.take (10)

Výstup:

rozdíl mezi loutkou a kuchařem
[u'odlesňování ', u'arising', u'main ', u'environmental', u'social ', u'issue', u'which ', u'has', u'now ', u'taken' ]

Součet čísel od 1 do 500: (Zmenšit)

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

Výstup:

124750

Strojové učení s PySpark

V pokračování našeho výukového blogu PySpark pojďme analyzovat některá data BasketBall a provést budoucí prognózu. Takže tady budeme používat basketbalová data všech hráčů NBA od té doby 1980 [rok zavedení 3 ukazatelů].

Načítání dat:

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

Tisk sloupců:

tisk (srov. sloupce)

Výstup:

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

Třídění hráčů (OrderBy) a toPandas:

Tady třídíme hráče podle bodů získaných v sezóně.

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

Výstup:

Používání DSL a matplotlib:

Zde analyzujeme průměrný počet 3 bodové pokusy pro každou sezónu v časovém limitu 36 min [interval odpovídající přibližné plné hře NBA s přiměřeným odpočinkem]. Tuto metriku vypočítáme pomocí počtu 3bodových pokusů o branku z pole (fg3a) a odehraných minut (mp) a poté výsledek vykreslíme pomocí 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 jako plt import seaborn jako sns plt.style .use ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Year') _ = plt.title ('průměr hráče 3bodové pokusy (za 36 minut) ') plt.annotate (' 3 pointer entered ', xy = (1980, .5), xytext = (1981, 1.1), velikost 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), fontsize = 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), fontsize = 9, arrowprops = dict (facecolor = 'grey', shrink = 0, linewidth = 2))

Výstup:

Lineární regrese a VectorAssembler:

K této křivce můžeme použít lineární regresní model, abychom mohli modelovat počet pokusů o výstřel na příštích 5 let. Musíme transformovat naše data pomocí funkce VectorAssembler do jednoho sloupce. Tohle je požadavek pro API lineární regrese 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ýstup:

pole php print_r

Model budovy:

Poté pomocí našich transformovaných dat sestavíme objekt modelu lineární regrese.

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

Aplikování trénovaného modelu na datovou sadu:

Náš trénovaný model objektového modelu aplikujeme na naši původní tréninkovou sadu spolu s 5 lety budoucích dat

z pyspark.sql.types import Řádek # použít model pro sezónu 1979-80 v sezóně 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 (row) .toDF ()) # použít lineární regresní model df_results = model.transform (all_years_features) .toPandas ()

Vynesení konečné predikce:

Poté můžeme vykreslit naše výsledky a uložit graf na určené místo.

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 (' Year ') plt.ylabel (' Number of pokusy ') plt.legend (loc = 4) _ = plt.title (' Průměrný 3-bodový pokus hráče (za 36 minut)) ') plt.tight_layout () plt.savefig (' / home / edureka / Soubory ke stažení / Obrázky / REGRESSION.png ')

Výstup:

A s tímto grafem se dostáváme na konec tohoto PySpark Tutorial Blog.

Takže tohle je, lidi!

Doufám, že jste dostali představu o tom, co je PySpark, proč je Python nejvhodnější pro Spark, RDD a letmý pohled na strojové učení s Pysparkem v tomto výukovém blogu PySpark. Gratulujeme, již nejste nováčkem v PySparku. Pokud se chcete dozvědět více o PySpark a porozumět různým případům průmyslového využití, podívejte se na naše Spark s Pythonem Blog.

Nyní, když jste pochopili, co je Pyspark, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Edureka Výcvik certifikace Python Spark pomocí PySpark je navržen tak, aby vám poskytl znalosti a dovednosti potřebné k tomu, abyste se stali úspěšným vývojářem Spark pomocí Pythonu, a připraví vás na certifikační zkoušku Cloudera Hadoop a Spark Developer Certification Exam (CCA175).