PySparki õpetus - õppige Apache Sparki Pythoni abil



Selles PySparki õpetuse ajaveebis saate teada PSparki API-st, mida kasutatakse Apache Sparkiga töötamiseks Pythoni programmeerimiskeelt kasutades.

Maailmas, kus andmeid genereeritakse nii murettekitava kiirusega, on nende andmete õige analüüs õigel ajal väga kasulik. Üks hämmastavamaid raamistikke suurandmete reaalajas käitlemiseks ja analüüside tegemiseks on Apache Spark.Koos või PySpark on üks nõutumaid sertifitseerimiskursusi, andes Scalale Sparkile oma raha eest jooksu. Nii et selles PySparki õpetus blogis arutlen järgmistel teemadel:





PySparki õpetus: mis on PySpark?

Apache Spark on kiire klastrite arvutamise raamistik, mida kasutatakse suurandmete töötlemiseks, päringuteks ja analüüsimiseks. Põhinedes mälusisesel arvutamisel, on sellel eelis mitmete teiste suurandmete raamistike ees.

PySparki funktsioonid - PySparki õpetus - Edureka



Algselt Scala programmeerimiskeeles kirjutatud avatud lähtekoodiga kogukond on Apache Sparki Pythoni toetamiseks välja töötanud hämmastava tööriista. PySpark aitab andmeteadlastel oma raamatukogu kaudu suhelda Apache Sparki ja Pythoni RDD-dega Py4j. Seal on palju funktsioone, mis muudavad PySparki teistest paremaks raamistikuks:

  • Kiirus: See on 100x kiirem kui traditsioonilised suuremahulised andmetöötlusraamistikud
  • Võimas vahemälu: Lihtne programmeerimiskiht pakub võimsaid vahemällu salvestamise ja ketta püsivuse võimalusi
  • Juurutamine: Saab juurutada Mesose kaudu, Hadoopi läbi lõnga või Sparki enda klastrihalduri kaudu
  • Reaalajas: Reaalajas arvutamine ja madal latentsus mälusisene arvutamise tõttu
  • Polüglott: Toetab programmeerimist Scalas, Java-s, Pythonis ja R-is

Liigume edasi oma PySparki õpetusblogiga ja vaatame, kus Sparki tööstuses kasutatakse.

PySpark tööstuses

Iga tööstus pöörleb suurandmete ja seal, kus on suurandmed, analüüs. Vaatame siis erinevaid tööstusharusid, kus Apache Sparki kasutatakse.



Pool on üks suurimaid voogedastuse valdkonnas kasvavaid tööstusharusid. Netflix kasutab Apache Sparki reaalajas voogude töötlemiseks, et pakkuda klientidele isikupärastatud veebisoovitusi. See töötleb 450 miljardit sündmused päevas, mis voolavad serveripoolsetesse rakendustesse.

Rahandus on veel üks sektor, kus Apache Sparki reaalajas töötlemine mängib olulist rolli. Pangad kasutavad Sparki sotsiaalmeedia profiilidele juurde pääsemiseks ja nende analüüsimiseks, et saada teadmisi, mis aitavad neil teha õigeid äriotsuseid krediidiriski hindamine , sihitud reklaamid ja klientide segmentimine. Klient Churn vähendatakse ka Sparki abil. Pettuste tuvastamine on üks masinõppe kõige enam kasutatavaid valdkondi, kus Spark osaleb.

Tervishoid pakkujad kasutavad Apache Sparki Analüüsige patsiendi andmeid koos varasemate kliiniliste andmetega, et teha kindlaks, millistel patsientidel on pärast kliinikust väljasaatmist tõenäoliselt terviseprobleeme. Apache Sparki kasutatakse aastal Genoomiline järjestamine genoomiandmete töötlemiseks vajaliku aja lühendamiseks.

Jaekaubandus ja e-kaubandus on tööstus, kus ei saa ette kujutada, et see töötab ilma analüüsi ja sihtreklaame kasutamata. Üks tänapäeva suurimaid e-kaubanduse platvorme Alibaba juhib üht suurimat Spark Jobs'i maailmas, et analüüsida petabaiti andmeid. Alibaba esineb funktsioonide väljavõtmine pildiandmetes. eBay kasutab pakkumiseks Apache Sparki Sihtpakkumised , parandada kliendikogemust ja optimeerida üldist jõudlust.

Reisimine Tööstused kasutavad ka Apache Sparki. TripAdvisor , juhtiv reisiveeb, mis aitab kasutajatel täiuslikku reisi planeerida, kasutab selle kiirendamiseks Apache Sparki isikupärastatud kliendisoovitused .TripAdvisor kasutab apache-sädet, et anda miljonitele reisijatele nõu sadade veebisaitide võrdlemine leida oma klientidele parimad hotellihinnad.

Selle PySparki õpetuse oluline aspekt on mõista, miks peame minema Pythoni poole? Miks mitte Java, Scala või R?

Uute värskenduste saamiseks tellige meie youtube'i kanal ..!


mis on skanner javas

Miks minna Pythoni poole?

Lihtne õppida: Programmeerijate jaoks on Pythoni süntaksi ja standardsete teekide tõttu suhteliselt lihtsam õppida. Pealegi on see dünaamiliselt sisestatud keel, mis tähendab, et RDD-d mahutavad mitut tüüpi objekte.

Suur hulk raamatukogusid: Scalal ei ole masinõppeks ja loomuliku keele töötlemiseks piisavalt andmeteaduse tööriistu ja raamatukogusid nagu Python. Pealegi puudub Scalal hea visualiseerimine ja kohalikud andmete teisendused.

Tohutu kogukonna tugi: Pythonil on ülemaailmne kogukond, kus on miljoneid arendajaid, kes suhtlevad veebis ja väljaspool veebi tuhandetes virtuaalsetes ja füüsilistes asukohtades.

Selle PySparki õpetuse üks olulisemaid teemasid on RDD-de kasutamine. Saame aru, mis on RDD-d

Säde RDD-d

Kui tegemist on iteratiivse hajutatud arvutusega, st andmete töötlemisega arvutustes mitme tööga, peame andmeid uuesti kasutama või mitme töö vahel jagama. Varasematel raamistikel nagu Hadoop oli probleeme mitme toimingu / tööga sarnaselt

  • Andmete salvestamine vaheruumidesse, näiteks HDFS-i
  • Mitu sisend- / väljundtööd muudavad arvutused aeglaseks
  • Replikatsioonid ja serialiseerimised muudavad protsessi veelgi aeglasemaks

RDD-d püüavad kõik probleemid lahendada, lubades veataluvaid hajutatud mälus olevaid arvutusi. RDD on lühend Elastsed hajutatud andmekogumid. RDD on hajutatud mälu abstraktsioon, mis võimaldab programmeerijatel teha suurtele klastritele veataluval viisil mälusiseseid arvutusi. Nad on kirjutuskaitstud objektide kogu jaotatud üle masinate komplekti, mida saab partitsiooni kaotamise korral uuesti ehitada. RDD-dele tehakse mitu toimingut:

  • Teisendused: Teisendused loovad olemasolevast uue andmekogumi. Laisk hindamine
  • Toimingud: Spark sunnib arvutusi täitmiseks ainult siis, kui RDD-dele käivitatakse toimingud

Mõistame mõningaid teisendusi, toiminguid ja funktsioone

Faili lugemine ja parimate n elemendi kuvamine:

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

Väljund:

[U'Metsade hävitamine on peamine keskkonna- ja sotsiaalprobleem, mis on nüüdseks muutunud rohkem kui võimsa deemonina. Me peame teadma metsade hävitamise tõttu tekkinud probleemide põhjuste, tagajärgede ja võimaluste kohta. ', u'Oleme esitanud palju lõike, pikka ja lühikest esseed metsade hävitamise kohta, et aidata teie lastel ja lastel probleemist teadlik olla ning osaleda esseekirjade konkursil koolis või väljaspool kooli. ', u'Võite valida mis tahes allpool toodud metsa raadamise essee vastavalt klassi standardile. ', u' Metsade hävitamine on ühiskonna ja keskkonna peamine globaalne probleem. ']

Teisendamine väiketähtedeks ja jagamine: (väike ja poolitatud)

def Func (read): read = read.lower () read = read.split () tagastavad read rdd1 = rdd.map (Func) rdd1.take (5)

Väljund:

[[metsa metsastamine ', u'is', u'arenev ', u'as', u'the ', u'main', u'keskkond ', u'and', usocial ', u'issue ', u'mi', u'has ', u'now', u'taken ', ...... . . ]

Stopp-sõnade eemaldamine: (filter)

stop_words = ['a', 'kõik', '', 'nagu', 'on', 'olen', 'an', 'ja', 'olema', 'olnud', 'pärit', 'olnud' , 'I', 'Tahaksin', 'miks', 'koos'] rdd2 = rdd1.filter (lambda z: z pole stop_wordsis) rdd2.take (10)

Väljund:

[metsa metsastamine ', u'ariseerimine', u'main ', u'keskkond', u'social ', u'issue', u'which ', u'has', u'now ', u'taken' ]

Numbrite summa 1–500: (vähendamine)

sum_rdd = sc. paralleel (vahemik (1500)) sum_rdd.reduce (lambda x, y: x + y)

Väljund:

124750

Masinõpe PySparkiga

Jätkates meie PySparki õpetusblogi, analüüsime mõnda BasketBalli andmeid ja prognoosime tulevikus. Niisiis, siin hakkame kasutama kõigi NBA mängijate korvpalliandmeid alates sellest ajast 1980 [3 näpunäite kasutuselevõtu aasta].

Andmete laadimine:

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

Veergude printimine:

print (df.columns)

Väljund:

['_c0', 'mängija', 'pos', 'vanus', 'meeskonna_ 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']

Mängijate (OrderBy) ja toPandade sorteerimine:

Siin sorteerime mängijad hooaja punktisumma järgi.

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

Väljund:

DSL-i ja matplotlibi kasutamine:

Siin analüüsime keskmist arvu 3-punktilised katsed iga hooaja jaoks tähtajaga kuni 36 min [intervall, mis vastab ligikaudsele NBA täismängule piisava puhkeajaga]. Arvutame selle mõõdiku, kasutades kolmepunktiliste väljakukatsete (fg3a) ja mängitud minutite (mp) arvu ning seejärel joonistame tulemuse matlplotlib .

failist pyspark.sql.functions importida 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') matplotlibilt impordi püplot plt impordi merelisena kui sns plt.style .use ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Aasta') _ = plt.title ('Mängija keskmine 3-punktilised katsed (36 minuti kohta) ') plt. Ei saa märkida (' 3 kursorit kasutusele võetud ', xy = (1980, .5), xytext = (1981, 1.1), fontsize = 9, arrowprops = dict (facecolor =' hall ', kahanemine = 0, liinilaius = 2)) plt. märkus (' NBA liikus 3-punktilises reas ', xy = (1996, 2.4), xytext = (1991.5, 2.7), fontsize = 9, nooleprops = dict (näovärv = 'hall', kahaneb = 0, liinilaius = 2)) plt. ei saa märkida ('NBA nihutas tagasi kolmepunktilist joont', xy = (1998, 2.), xytext = (1998.5, 2.4), fontsize = 9, noolelõksud = dict (facecolor = 'hall', kahaneb = 0, rea laius = 2))

Väljund:

Lineaarne regressioon ja VectorAssembler:

Sellele kõverale saame sobitada lineaarse regressioonimudeli, et modelleerida lasukatsete arvu järgmise 5 aasta jooksul. Peame oma andmed VectorAssembler-funktsiooni abil teisendama üheks veeruks. See on nõue lineaarse regressiooni API jaoks MLlibis.

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

Väljund:

Hoone mudel:

Seejärel ehitame oma teisendatud andmete abil oma lineaarse regressiooni mudeli objekti.

from pyspark.ml. regressiooni import LinearRegression lr = LinearRegression (maxIter = 10) mudel = lr.fit (koolitus)

Väljaõppinud mudeli rakendamine andmekogumis:

Rakendame oma koolitatud mudeli objekti mudeli oma algsele treeningkomplektile koos 5-aastaste tulevaste andmetega

alates pyspark.sql.types import Rida # rakendada mudelit hooajale 1979-80 kuni hooajani 2020-21 koolitus_yrs = koolitus.select ('yr'). rdd.map (lambda x: x [0]). collect () koolitus_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 # ehitatud testimine DataFrame test_rdd = sc.parallelize (all_yrs) row = Rida ('yr') & ampamplt all_years_features = t.transform (test_rdd.map (rida) .toDF ()) # rakendage lineaarse regressioonimudeli df_results = model.transform (all_years_features) .Pandas ()

Lõpliku ennustuse kavandamine:

Seejärel saame oma tulemused koostada ja graafiku määratud kohta salvestada.

plt.plot (df_results.yr, df_results.prediction, joone laius = 2, linestyle = '-', color = '# 224df7', label = 'L2 Fit') plt.plot (koolitus_yrs, treening_y, color = '# f08080 ', silt = puudub] plt.xlabel (' aasta ') plt.ylabel (' katsete arv ') plt.legend (loc = 4) _ = plt.title (' mängija keskmine 3-punktiline katse (36 minuti kohta) ') plt.tight_layout () plt.savefig (' / home / edureka / Allalaadimised / Pildid / REGRESSION.png ')

Väljund:

Ja selle graafikuga jõuame selle PySparki õpetusblogi lõpuni.

Nii see on, poisid!

Loodan, et teie said aimu sellest, mis on PySpark, miks Python sobib kõige paremini Sparki, RDD-de jaoks ja pilguheit Pysparkiga masinõppele selles PySparki õpetusblogis. Palju õnne, te pole enam PySparki algaja. Kui soovite PySparki kohta lisateavet saada ja mõista erinevaid tööstuse kasutamise juhtumeid, vaadake meie lehte Säde Pythoniga Ajaveeb.

ühenda sort c ++ massiiv

Nüüd, kui olete aru saanud, mis on Pyspark, vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka oma Pythoni sädeme sertifitseerimise koolitus PySparki kasutades on loodud pakkuma teile teadmisi ja oskusi, mis on vajalikud edukaks Sparki arendajaks saamiseks Pythoni abil, ning valmistama ette Cloudera Hadoopi ja Sparki arendaja sertifitseerimise eksamiks (CCA175).