PySpark apmācība - uzziniet Apache Spark, izmantojot Python

Šajā PySpark apmācības emuārā jūs uzzināsiet par PSpark API, kas tiek izmantots darbam ar Apache Spark, izmantojot Python programmēšanas valodu.

Pasaulē, kur dati tiek ģenerēti tik satraucošā ātrumā, šo datu pareiza analīze pareizajā laikā ir ļoti noderīga. Apache Spark ir viens no apbrīnojamākajiem ietvariem lielu datu apstrādei reāllaikā un analīzes veikšanai.Kopā vai PySpark ir viens no pieprasītākajiem sertifikācijas kursiem, kas ļauj Scala for Spark palaist savu naudu. Tātad šajā PySpark apmācība emuārā, es apspriedīšu šādas tēmas:





PySpark apmācība: kas ir PySpark?

Apache Spark ir ātras kopu skaitļošanas sistēma, kas tiek izmantota lielu datu apstrādei, vaicājumiem un analizēšanai. Pamatojoties uz atmiņā veikto aprēķinu, tam ir priekšrocības salīdzinājumā ar vairākiem citiem lielo datu ietvarstruktūrām.

PySpark funkcijas - PySpark apmācība - Edureka



Sākotnēji Scala programmēšanas valodā rakstītā atvērtā koda kopiena ir izstrādājusi pārsteidzošu rīku, lai atbalstītu Python Apache Spark. Izmantojot savu bibliotēku, PySpark palīdz datu zinātniekiem sazināties ar Apache Spark un Python RDD Py4j. Ir daudzas funkcijas, kas padara PySpark labāku sistēmu nekā citas:

  • Ātrums: Tas ir simtreiz ātrāks nekā tradicionālās liela mēroga datu apstrādes sistēmas
  • Jaudīga kešatmiņa: Vienkāršs programmēšanas slānis nodrošina jaudīgas kešatmiņas un diska noturības iespējas
  • Izvietošana: Var izvietot caur Mesos, Hadoop caur Yarn vai paša Spark klastera pārvaldnieku
  • Īsts laiks: Reāllaika aprēķins un zems latentums atmiņas aprēķina dēļ
  • Poliglots: Atbalsta programmēšanu Scala, Java, Python un R

Pārejam uz priekšu ar mūsu PySpark apmācības emuāru un redzēsim, kur Spark tiek izmantots nozarē.

PySpark nozarē

Katra nozare ir saistīta ar lielajiem datiem un tur, kur ir iesaistīti lielie dati. Apskatīsim dažādās nozares, kurās tiek izmantota Apache Spark.



Puse ir viena no lielākajām nozarēm, kas aug tiešsaistes straumēšanas virzienā. Netflix reāllaika straumes apstrādei izmanto Apache Spark, lai klientiem sniegtu personalizētus tiešsaistes ieteikumus. Tas apstrādā 450 miljardi notikumi dienā, kas plūst uz servera puses lietojumprogrammām.

Finanses ir vēl viena nozare, kurā Apache Spark reāllaika apstrādei ir svarīga loma. Bankas izmanto Spark, lai piekļūtu un analizētu sociālo mediju profilus, lai gūtu ieskatu, kas tām varētu palīdzēt pieņemt pareizus biznesa lēmumus kredītriska novērtējums , mērķtiecīgas reklāmas un klientu segmentēšana. Klients Churn tiek samazināts arī, izmantojot Spark. Krāpšanas atklāšana ir viena no visplašāk izmantotajām mašīnmācīšanās jomām, kurā ir iesaistīta Spark.

php atšķirība starp atbalss un drukāšanu

Veselības aprūpe pakalpojumu sniedzēji izmanto Apache Spark Analizējiet pacientu ierakstus kopā ar iepriekšējiem klīniskajiem datiem, lai noteiktu, kuri pacienti pēc izrakstīšanās no klīnikas varētu saskarties ar veselības problēmām. Apache Spark tiek izmantots Genomiskā secība samazināt genoma datu apstrādei nepieciešamo laiku.

Mazumtirdzniecība un e-komercija ir nozare, kurā nevar iedomāties, ka tā darbojas bez analīzes un mērķtiecīgas reklāmas izmantošanas. Viena no lielākajām e-komercijas platformām šodien Alibaba vada dažus no lielākajiem Spark Jobs darbiem pasaulē, lai analizētu petabaitus datu. Alibaba uzstājas iezīmju iegūšana attēlu datos. eBay izmanto Apache Spark, lai nodrošinātu Mērķtiecīgi piedāvājumi , uzlabot klientu pieredzi un optimizēt kopējo veiktspēju.

Ceļošana Nozares izmanto arī Apache Spark. TripAdvisor , vadošā ceļojumu vietne, kas lietotājiem palīdz plānot perfektu ceļojumu, izmanto Apache Spark, lai to paātrinātu personalizēti klientu ieteikumi .TripAdvisor izmanto apache spark, lai sniegtu padomus miljoniem ceļotāju līdz salīdzinot simtiem vietņu lai atrastu labākās viesnīcu cenas saviem klientiem.

Svarīgs šīs PySpark apmācības aspekts ir saprast, kāpēc mums jādodas uz Python? Kāpēc ne Java, Scala vai R?

Abonējiet mūsu youtube kanālu, lai iegūtu jaunus atjauninājumus ..!


Kāpēc iet uz Python?

Viegli iemācīties: Programmētājiem Python ir salīdzinoši vieglāk iemācīties sintakses un standarta bibliotēku dēļ. Turklāt tā ir dinamiski drukāta valoda, kas nozīmē, ka RDD var saturēt vairāku veidu objektus.

Plašs bibliotēku komplekts: Scala nav pietiekami daudz datu zinātnes rīku un bibliotēku, piemēram, Python, mašīnmācībai un dabiskās valodas apstrādei. Turklāt Scala trūkst labas vizualizācijas un vietējo datu pārveidošanas.

Milzīgs kopienas atbalsts: Python ir globāla kopiena, kurā ir miljoniem izstrādātāju, kuri tiešsaistē un bezsaistē mijiedarbojas tūkstošiem virtuālo un fizisko vietu.

Viena no svarīgākajām tēmām šajā PySpark apmācībā ir RDD izmantošana. Sapratīsim, kas ir RDD

Dzirksteles RDD

Kad runa ir par iteratīvu sadalīto skaitļošanu, t.i., datu apstrādi vairākos darbos skaitļošanā, mums dati ir jāizmanto atkārtoti vai jādalās starp vairākiem darbiem. Agrākām sistēmām, piemēram, Hadoop, bija problēmas, strādājot ar vairākām darbībām / darbiem, piemēram,

  • Datu glabāšana starpkrātuvēs, piemēram, HDFS
  • Vairāki I / O darbi padara skaitļošanu lēnu
  • Replikācijas un sērijas, kas savukārt padara procesu vēl lēnāku

RDD mēģina atrisināt visas problēmas, iespējojot kļūdu tolerantu sadalīto atmiņā veikto aprēķinu. RDD ir saīsinājums Elastīgas izplatītās datu kopas. RDD ir sadalīta atmiņas abstrakcija, kas ļauj programmētājiem kļūdas izturīgi veikt atmiņas aprēķinus lielām kopām. Viņi ir tikai lasāma objektu kolekcija sadalīts pa mašīnu kopu, kuras var atjaunot, ja nodalījums tiek zaudēts. Ar RDD tiek veiktas vairākas darbības:

  • Pārvērtības: Transformācijas izveido jaunu datu kopu no esošās. Slinks novērtējums
  • Darbības: Spark piespiež veikt aprēķinus tikai tad, kad uz RDD tiek izsauktas darbības

Izpratīsim dažus pārveidojumus, darbības un funkcijas

Faila lasīšana un top n elementu parādīšana:

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

Izeja:

[Mežu izciršana rodas kā galvenā vides un sociālā problēma, kas tagad ir izpaudusies kā spēcīgs dēmons. Mums jāzina par mežu izciršanas radīto problēmu cēloņiem, sekām un veidiem. Mēs esam sagatavojuši daudz rindkopu, garu un īsu eseju par mežu izciršanu, lai palīdzētu jūsu bērniem un bērniem uzzināt par problēmu, kā arī piedalīties eseju rakstīšanas konkursā skolā vai ārpus skolas. ', u'Jūs varat izvēlēties jebkuru zemāk sniegto mežu izciršanas eseju atbilstoši klases standartam. ', u'Mežošana rodas kā galvenā globālā problēma sabiedrībai un videi.']

Konvertēšana uz mazajiem burtiem un sadalīšana: (mazie un sadalītie)

def Func (līnijas): līnijas = līnijas.lower () līnijas = līnijas.split () atgriešanās līnijas rdd1 = rdd.map (Func) rdd1.take (5)

Izeja:

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

StopWords noņemšana: (filtrs)

stop_words = ['a', 'all', 'the', 'as', 'is', 'am', 'an', 'un', 'be', 'been', 'from', 'had' , 'Es', 'Es gribētu', 'Kāpēc', 'ar'] rdd2 = rdd1.filter (lambda z: z nav stop_words) rdd2.take (10)

Izeja:

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

Skaitļu summa no 1 līdz 500: (samazināt)

sum_rdd = sc. paralēlināt (diapazons (1500)) sum_rdd.reduce (lambda x, y: x + y)

Rezultāts:

124750

Mašīnmācība ar PySpark

Turpinot mūsu PySpark apmācības emuāru, analizēsim dažus BasketBall datus un veiksim dažas prognozes nākotnē. Tātad, šeit mēs izmantosim visu NBA spēlētāju basketbola datus kopš tā laika 1980. gads [3 rādītāju ieviešanas gads].

Datu ielāde:

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

Kolonnu drukāšana:

drukāt (df.columns)

Izeja:

['_c0', 'spēlētājs', 'pos', 'vecums', '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']

Spēlētāju (OrderBy) un toPandu šķirošana:

Šeit mēs kārtojam spēlētājus pēc sezonā gūtajiem punktiem.

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

Izeja:

Izmantojot DSL un matplotlib:

Šeit mēs analizējam vidējo 3 punktu mēģinājumi katrai sezonai termiņā 36 minūtes [intervāls, kas atbilst aptuvenai pilnīgai NBA spēlei ar pietiekamu atpūtu]. Mēs aprēķinām šo metriku, izmantojot trīs punktu lauka vārtu mēģinājumu skaitu (fg3a) un nospēlētās minūtes (mp), un pēc tam rezultātu uzzīmējam, izmantojot matlplotlib .

no pyspark.sql.functions importēt 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') no matplotlib importa pyplot kā plt importēt jūraszīmi kā sns plt.style .use ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Gads') _ = plt.title ('Spēlētāja vidējais rādītājs 3 punktu mēģinājumi (36 minūtēs) ') plt. Piezīme (' 3 rādītājs ieviests ', xy = (1980, .5), xytext = (1981, 1.1), fontsize = 9, arrowprops = dict (facecolor =' pelēks ', sarukt = 0, līnijas platums = 2)) plt. piezīme (' NBA pārvietojās 3 punktu līnijā ', xy = (1996, 2.4), xytext = (1991.5, 2.7), fontsize = 9, arrowprops = dict (facecolor = 'pelēks', sarukt = 0, līnijas platums = 2)) plt. piezīme ('NBA pārcēlās atpakaļ 3 punktu līniju', xy = (1998, 2.), xytext = (1998.5, 2.4), fontsize = 9, bultiņu balsti = dikti (facecolor = 'pelēks', sarukt = 0, līnijas platums = 2))

Izeja:

Lineārā regresija un VectorAssembler:

Šajā līknē mēs varam pielāgot lineārās regresijas modeli, lai modelētu šāvienu mēģinājumu skaitu nākamajiem 5 gadiem. Izmantojot VectorAssembler funkciju, mums ir jāpārveido dati vienā kolonnā. Tas ir prasība lineārās regresijas API MLlib.

no pyspark.ml.feature importa VectorAssembler t = VectorAssembler (inputCols = ['yr'], outputCol = 'Features') apmācība = t.transform (fga_py) .withColumn ('yr', fga_py.yr) .withColumn ('label ', fga_py.fg3a_p36m) training.toPandas (). head ()

Izeja:

Ēkas modelis:

Pēc tam mēs izveidojam savu lineārās regresijas modeļa objektu, izmantojot mūsu pārveidotos datus.

no pyspark.ml.regresijas importa LinearRegression lr = LinearRegression (maxIter = 10) modelis = lr.fit (apmācība)

Apmācīta modeļa lietošana datu kopai:

Mēs izmantojam mūsu apmācīto objekta modeli savam sākotnējam mācību komplektam kopā ar 5 gadu nākotnes datiem

no pyspark.sql.types importēšanas Rindas Nr. # piemērot modeli 1979.-80. gada sezonai līdz 2020. – 21. gada sezonai training_yrs = training.select ('yr'). rdd.map (lambda x: x [0]). = training.select ('fg3a_p36m'). rdd.map (lambda x: x [0]). collect () prediction_yrs = [2017, 2018, 2019, 2020, 2021] all_yrs = training_yrs + prediction_yrs # būvēts testēšana DataFrame test_rdd = sc.parallelize (all_yrs) row = Rinda ('yr') & ampamplt all_years_features = t.transformēt (test_rdd.map (rinda) .toDF ()) # pielietot lineārās regresijas modeli df_results = model.transform (all_years_features) .toPandas ()

Galīgās prognozes plānošana:

Pēc tam mēs varam uzzīmēt savus rezultātus un saglabāt diagrammu noteiktā vietā.

plt.plot (df_results.yr, df_results.prediction, linewidth = 2, linestyle = '-', color = '# 224df7', label = 'L2 Fit') plt.plot (apmācības_yrs, apmācības_y, krāsa = '# f08080 ', label = Neviens) plt.xlabel (' Gads ') plt.ylabel (' Mēģinājumu skaits ') plt.legend (loc = 4) _ = plt.title (' Spēlētāja vidējie trīspunktu mēģinājumi (36 minūtēs) ') plt.tight_layout () plt.savefig (' / home / edureka / Lejupielādes / Attēli / REGRESSION.png ')

Izeja:

Ar šo diagrammu mēs esam nonākuši šī PySpark apmācības emuāra beigās.

Tā tas ir, puiši!

Es ceru, ka jūs, puiši, uzzinājāt, kas ir PySpark, kāpēc Python ir vispiemērotākais Spark, RDD un ieskats mašīnmācībās ar Pyspark šajā PySpark apmācības blogā. Apsveicam, jūs vairs neesat PySpark iesācējs. Ja vēlaties uzzināt vairāk par PySpark un izprast dažādus nozares izmantošanas gadījumus, ieskatieties mūsu Dzirkstele ar Python Emuārs.

Tagad, kad esat sapratis, kas ir Pyspark, pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka Python Spark sertifikācijas apmācība, izmantojot PySpark ir paredzēts, lai sniegtu jums zināšanas un prasmes, kas nepieciešamas, lai kļūtu par veiksmīgu Spark izstrādātāju, izmantojot Python, un sagatavotu jūs Cloudera Hadoop un Spark Developer sertifikācijas eksāmenam (CCA175).