Sissejuhatus sädemesse Pythoniga - PySpark algajatele



Apache Spark on võtnud üle Big Data & Analyticsi maailma ja Python on üks kõige kättesaadavamaid programmeerimiskeeli, mida tänapäeval tööstuses kasutatakse. Nii et siin blogis õpime Pysparki (säde koos pythoniga), et mõlemast maailmast parimat saada.

on üks kõige enam kasutatav raamistik Big Data AND-ga töötlemisel ja sellega töötamisel Python on üks enimkasutatavaid programmeerimiskeeli andmete analüüsimiseks, masinõppeks ja palju muuks. Niisiis, miks mitte neid koos kasutada? See on koht Säde Pythoniga tuntud ka kui PySpark tuleb sissepilt.

sort array c ++ kahanevalt

Apache Sparki arendaja keskmise palgaga 110 000 dollarit aastas pole kahtlust, et Sparki kasutatakse tööstuses palju. Sestsellerikkaliku raamatukogukomplekti, kasutab Pythonienamus andmeteadlasi ja analüütikute eksperte täna. Pythoni integreerimine Sparkiga oli kogukonnale suur kingitus. Spark töötati välja Scala keeles, mis on väga sarnane Java-ga. See kompileerib programmi koodi JVM-i baidekoodiks suurte andmete töötlemiseks. Sparki toetamiseks pythoniga andis Apache Sparki kogukond välja PySparki.Sellest ajast, on teadaolevalt üks kogu valdkonna kõige nõutumaid oskusi tänu laiale eeliste valikule, mis saadi pärast mõlema maailma parimate ühendamist.Selles blogis 'Spark with Python' käsitlen järgmisi teemasid.





Sissejuhatus Apache Sparki

Apache Spark on avatud lähtekoodiga klastrite arvutamise raamistik töötlemine reaalajas välja töötanud Apache Software Foundation. Spark pakub liidest tervete klastrite vaikimisi programmeerimiseks andmete paralleelsus ja veataluvus.



Allpool on mõned Apache Sparki funktsioonid, mis annavad sellele eelise teiste raamistike ees:

Sädefunktsioonid - säde Pythoniga - Edureka

  • 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: Reaalajasarvutus ja madal latentsus mälusisene arvutamise tõttu.
  • Polüglott: See on üks olulisemaidFunktsioonidselle raamistiku, kuna seda saab programmeerida Scala, Java, Python ja R

Miks minna Pythoni poole?

Kuigi Spark kujundati skaalas, mis muudab selle peaaegu kümme korda kiiremaks kui Python, kuid Scala on kiirem ainult siis, kui kasutatavate südamike arv on väiksem . Kuna suurem osa analüüsist ja protsessist nõuab tänapäeval suurt hulka südamikke, pole Scala jõudluse eelis nii palju.



Programmeerijate jaoks on Python suhteliselt lihtsam õppima süntaksi ja standardsete teekide tõttu. Pealegi on see a dünaamiliselt kirjutatud keel, mis tähendab, et RDD-d mahutavad mitut tüüpi objekte.

Kuigi Scalal on SparkMLlib seda pole piisavalt raamatukogusid ja tööriistu masinõppeks ja NLP-ks eesmärkidel. Pealegi puudub Scalal andmete visualiseerimine.

PySparki koolitus | Apache Spark koos Pythoniga | Edureka

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

Sparki seadistamine Pythoniga (PySpark)

Ma loodan, et te teate, kuidas .Niisiis, kui olete seda teinud lahti sädemefail, installitud selle ja lisas selle tee .bashrc faili, peate sisestamaallikas .bashrc

eksport SPARK_HOME = /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7 eksport PATH = $ PATH: /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7/bin

Püsparki kesta avamiseks peate sisestama käsu./bin/pyspark

Säde tööstuses

Apache Spark selle hämmastavate funktsioonide tõttu nagu mälusisene töötlemine , polüglott ja kiire töötlemine mida paljud ettevõtted kogu maailmas kasutavad erinevatel eesmärkidel erinevates tööstusharudes:

Yahoo kasutab Apache Sparki oma masinõppevõimaluste jaoks oma uudiste, veebilehtede isikupärastamiseks ja ka sihtreklaamide jaoks. Nad kasutavad Sparki koos pythoniga, et teada saada, milliseid uudiseid - kasutajad on huvitatud lugema ja kategoriseerima uudiseid, et teada saada, millised kasutajad oleksid huvitatud iga uudiste kategooria lugemisest.

TripAdvisor kasutab miljonite reisijate nõustamiseks apache-sädet, võrreldes sadu veebisaite, et leida oma klientidele parimad hotellihinnad. Hotellide arvustuste loetavas vormingus lugemiseks ja töötlemiseks kuluv aeg tehakse Apache Sparki abil.

Üks maailma suurimaid e-kaubanduse platvorme Alibaba töötab maailma suurimaid Apache Sparki töökohti, et oma e-kaubanduse platvormil analüüsida sadu petabaiti andmeid.

PySpark SparkContext ja andmevoog

Sparkist Pythoniga rääkides võimaldab RDD-dega töötamine raamatukogu Py4j. PySpark Shell seob Pythoni API sädemega ja lähtestab sädemekonteksti. Sädeme kontekst on iga sädemega seotud rakenduse süda.

  1. Sparki kontekst loob siseteenused ja loob ühenduse Sparki täitmiskeskkonnaga.
  2. Draiveriprogrammi sädeolukorra objekt koordineerib kogu hajutatud protsessi ja võimaldab ressursside jaotamist.
  3. Klastrihaldurid pakuvad täitjatele, mis on JVM-i protsess, loogikat.
  4. SparkContext objekt saadab rakenduse täitjatele.
  5. SparkContext täidab ülesandeid igas täituris.

PySpark KDD kasutamise juhtum

Vaatame nüüd kasutusjuhtumit KDD’99 karikas (Rahvusvaheline teadmiste avastamise ja andmekaevandamise tööriistade konkurss).Siin võtame murdosa andmekogumist, kuna algne andmekogum on liiga suur

importige urllib f = urllib.urlretrieve ('http://kdd.ics.uci.edu/databases/kddcup99/kddcup.data_10_percent.gz', 'kddcup.data_10_percent.gz')

RDD LOOMINE:
Nüüd saame seda faili kasutada luua meie RDD .

data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file)

FILTRIMINE:

Oletame, et tahame kokku lugeda, kui palju normaalseid. vastastikmõjud, mis meil on andmekogumis. Me saame filter meie raw_data RDD järgmiselt.

normal_raw_data = raw_data.filter (lambda x: 'normaalne.' x-is)

COUNT:

Nüüd saame loendama kui palju elemente meil uues RDD-s on.

ajast impordiaeg t0 = aeg () normaalne_arv = normaalne_joonistusandmed.kogus () tt = aeg () - t0 print 'On {}' tavalisi 'interaktsioone.formaat (normaalne_arv) print' Loendus lõpetatud {} sekundi jooksul.formaat (ümmargune (tt, 3))

Väljund:

Tavalisi interaktsioone on 97278, loendus on tehtud 5,951 sekundiga

KAARDITAMINE:

Sellesjuhtumtahame lugeda oma andmefaili CSV-vormingus. Saame seda teha, rakendades RDD igale elemendile lambda-funktsiooni järgmiselt. Siin me kasutame kaardistada () ja võtta () teisendus.

pprindi impordist pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = aeg () head_rows = csv_data.take (5) tt = aeg () - t0 print 'Sõelumine on valmis {} sekundiga '.formaat (ümmargune (tt, 3)) pprint (päiseread [0])

Väljund:

Sõelumine lõpetati 1,715 sekundiga [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normaalne. ']

SPLITTING:

Nüüd soovime, et iga RDD element oleks võtme-väärtuste paar, kus võti on silt (nt. normaalne ) ja väärtus on kogu elementide loend, mis tähistab CSV-vormingus faili rida. Me võiksime jätkata järgmiselt. Siin kasutame line.split () ja kaart ().

def parse_interaction (line): elems = line.split (',') tag = elems [41] return (tag, elems) key_csv_data = raw_data.map (parse_interaction) head_rows = key_csv_data.take (5) pprint (head_rows [0] )
 Väljund: (u'normaalne. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0,00 ', u'1,00', .... U'normaalne. '])

KOGUDE MEETMED:

Siin kasutame toimingut koguda (). See saab mällu kõik RDD elemendid. Sel põhjusel tuleb seda kasutada suurte RDD-dega töötamisel ettevaatlikult.

t0 = aeg () kõik_jõud_andmed = toored_andmed.collect () tt = aeg () - t0 print 'Andmed on kogutud {} sekundiga'. formaat (ring (tt, 3))

Väljund:

Andmed koguti 17,927 sekundiga

See võttis muidugi kauem aega, kui mis tahes muu toiming, mida me varem kasutasime. Iga Sparki töötaja sõlme, millel on fragment RDD-st, tuleb koordineerida, et oma osa kätte saada ja seejärel kõike koos vähendada.

Viimase näitena, mis ühendab kõik eelnevad, tahame koguda kõiknormaalnevastastikmõjud kui põhiväärtuste paarid.

# andmete hankimine failist data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # parsimine võtmeväärtuste paarideks key_csv_data = raw_data.map (parse_interaction) # tavaliste võtmevahetuste filtreerimine normal_key_interaction = key_csv_data.filter lambda x: x [0] == 'tavaline.') # kogu kõik t0 = aeg () kõik_normaalne = tavalised_võtmete_interaktsioonid.collect () tt = aeg () - t0 normaalne_arv = len (kõik_normaalne) print 'Andmed kogutakse {} sekundiga '.formaat (ümmargune (tt, 3)) print' On {} 'tavalisi' interaktsioone'.formaat (normaalne_arv)

Väljund:

Andmed on kogutud 12,485 sekundi jooksul. Tavalisi koostoimeid on 97278

Nii see on, poisid!

Loodan, et teile meeldis see Pythoni blogiga Säde. Kui loete seda, siis palju õnne! Sa ei ole enam PySparki algaja. Proovige seda lihtsat näidet oma süsteemides kohe.

Nüüd, kui olete PySparki põhitõdedest aru saanud, vaadake järgmist 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 Pythoni abil edukaks Sparki arendajaks saamiseks, ning valmistama ette teid Cloudera Hadoopi ja Sparki arendaja sertifitseerimise eksamiks (CCA175).

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.