yra viena plačiausiai naudojamų sistemų, kai reikia tvarkyti ir dirbti su „Big Data AND“ „Python“ yra viena iš dažniausiai naudojamų programavimo kalbų duomenų analizei, mašininiam mokymuisi ir daugeliui kitų. Taigi, kodėl gi jų nenaudojant kartu? Tai kur Kibirkštis su „Python“ taip pat žinomas kaip „PySpark“ įeinapaveikslėlis.
„Microsoft SQL“ serverio pamoka pradedantiesiems
Turint vidutinį „Apache Spark“ kūrėjo atlyginimą 110 000 USD per metus, nėra jokių abejonių, kad „Spark“ pramonėje naudojama daug. Nesjosturtingas bibliotekos rinkinys, „Python“ naudojašiandien dauguma duomenų mokslininkų ir „Analytics“ ekspertų. „Python“ integravimas į „Spark“ buvo pagrindinė dovana bendruomenei. „Spark“ buvo sukurta „Scala“ kalba, kuri labai panaši į „Java“. Jis kaupia programos kodą į JVM baitų kodą, kad būtų galima apdoroti didelius duomenis. Siekdama paremti „Spark“ su pitonu, „Apache Spark“ bendruomenė išleido „PySpark“.Nuo tada, buvo žinoma, kad tai yra vienas iš labiausiai ieškomų įgūdžių visoje pramonėje dėl plataus spektro privalumų, kurie atsirado sujungus geriausius iš šių pasaulių.Šiame tinklaraštyje „Spark with Python“ aptarsiu šias temas.
„Apache Spark“ įvadas
Apache Spark yra atvirojo kodo klasterių skaičiavimo sistema, skirta apdorojimas realiuoju laiku sukūrė „Apache Software Foundation“. „Spark“ suteikia sąsają netiesiogiai programuoti ištisus klasterius duomenų lygiagretumas ir atsparumas gedimams.
Žemiau yra keletas „Apache Spark“ funkcijų, suteikiančių pranašumą prieš kitas sistemas:
- Greitis: Tai 100 kartų greičiau nei tradicinės didelio masto duomenų apdorojimo sistemos.
- Galingas talpinimas: Paprastas programavimo sluoksnis suteikia galingas talpyklas ir disko išlaikymo galimybes.
- Diegimas: Galima dislokuoti per „Mesos“, „Hadoop“ per „Yarn“ arba „Spark“ klasterio valdytoją.
- Realusis laikas: Realaus laikoskaičiavimas ir mažas delsimas dėl atminties skaičiavimo.
- Poliglotas: Tai viena svarbiausiųfunkcijosšios sistemos, nes ją galima užprogramuoti „Scala“, „Java“, „Python“ ir „R“.
Kodėl verta kreiptis į „Python“?
Nors „Spark“ buvo sukurta skalėje, todėl jis beveik 10 kartų greitesnis nei „Python“, tačiau „Scala“ yra greitesnis tik tada, kai naudojamų šerdžių skaičius yra mažesnis . Kadangi daugumai analizės ir procesų šiais laikais reikia daug branduolių, „Scala“ našumo pranašumas nėra toks didelis.
Programuotojams „Python“ yra palyginti lengviau išmokti dėl savo sintaksės ir standartinių bibliotekų. Be to, tai yra dinamiškai įvesta kalba, o tai reiškia, kad RDD gali laikyti kelių tipų objektus.
Nors „Scala“ turi „SparkMLlib“ jo neturi pakankamai bibliotekų ir įrankių mašininiam mokymuisi ir NLP tikslai. Be to, „Scala“ trūksta duomenų vizualizavimo.
„PySpark“ mokymai | „Apache Spark“ su „Python“ Edureka
Norėdami gauti naujienų, užsiprenumeruokite mūsų „YouTube“ kanalą ..!
„Spark“ nustatymas naudojant „Python“ („PySpark“)
Tikiuosi, kad jūs, vaikinai, mokate .Taigi, kai tai padarysite atsegtas kibirkšties byla, įdiegta tai ir pridėjo savo kelią .bashrc failą, turite įvestišaltinis .bashrc
eksportuoti SPARK_HOME = /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7 eksportuoti PATH = $ PATH: /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7/bin
Norėdami atidaryti „pyspark“ apvalkalą, turite įvesti komandą./bin/pyspark
Kibirkštis pramonėje
„Apache Spark“ dėl tokių nuostabių savybių kaip atminties apdorojimas , poliglotas ir greitas apdorojimas juos naudoja daugybė kompanijų visame pasaulyje įvairiems tikslams įvairiose pramonės šakose:
„Yahoo“ naudoja „Apache Spark“ savo mašininio mokymosi galimybėms pritaikyti savo naujienas, tinklalapius ir tikslinę reklamą. Jie naudoja „Spark with python“, norėdami sužinoti, kokios naujienos - vartotojai yra suinteresuoti skaityti ir suskirstyti naujienas į kategorijas, kad sužinotų, kokie vartotojai būtų suinteresuoti skaityti kiekvieną naujienų kategoriją.
„TripAdvisor“ naudoja „apache“ kibirkštį, norėdamas patarti milijonams keliautojų, palygindamas šimtus svetainių, kad rastų geriausias viešbučių kainas savo klientams. Laikas, reikalingas skaityti ir apdoroti viešbučių apžvalgas skaitomu formatu, atliekamas „Apache Spark“ pagalba.
Viena didžiausių pasaulyje elektroninės prekybos platformų Alibaba vykdo keletą didžiausių „Apache Spark“ darbų pasaulyje, siekdamas išanalizuoti šimtus petabaitų duomenų savo el. prekybos platformoje.
„PySpark SparkContext“ ir duomenų srautas
Kalbėti apie „Spark“ su „Python“, dirbti su RDD leidžia biblioteka „Py4j“. „PySpark Shell“ susieja „Python“ API su „core“ ir inicijuoja „Spark“ kontekstą. Kibirkšties kontekstas yra bet kurios kibirkšties taikymo širdis.
- „Spark“ kontekste nustatomos vidinės paslaugos ir nustatomas ryšys su „Spark“ vykdymo aplinka.
- Tvarkyklės konteksto objektas tvarkyklės programoje koordinuoja visą paskirstytą procesą ir leidžia paskirstyti išteklius.
- Klasterių valdytojai teikia vykdytojams, kurie yra JVM procesas, logika.
- „SparkContext“ objektas siunčia programą vykdytojams.
- „SparkContext“ vykdo kiekvieno vykdytojo užduotis.
„PySpark KDD“ naudojimo atvejis
Dabar pažvelkime į naudojimo atvejį KDD’99 taurė (Tarptautinis žinių paieškos ir duomenų gavybos įrankių konkursas).Čia paimsime dalį duomenų rinkinio, nes pradinis duomenų rinkinys yra per didelis
importuoti urllib f = urllib.urlretrieve ('http://kdd.ics.uci.edu/databases/kddcup99/kddcup.data_10_percent.gz', 'kddcup.data_10_percent.gz')
Kurdama RDD:
Dabar mes galime naudoti šį failą sukurti mūsų RDD .
data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (duomenų_failas)
FILTRAVIMAS:
Tarkime, mes norime suskaičiuoti, kiek normalių. mūsų duomenų rinkinyje. Mes galime filtras mūsų raw_data RDD taip.
normal_raw_data = raw_data.filter (lambda x: 'normalus' x formatu)
SKAIČIUS:
Dabar galime suskaičiuoti kiek elementų turime naujajame RDD.
nuo laiko importavimo laikas t0 = laikas () normal_count = normal_raw_data.count () tt = time () - t0 spausdinti 'Yra {}' normalios 'sąveikos'.format (normal_count) spausdinti' Count įvykdyta per {} sekundes'.format (apvalus (tt, 3))
Išvestis:
Yra 97278 „įprastos“ sąveikos, kurios įvykdytos per 5,951 sekundės
KARTOJIMAS:
Šiameatvejunorime skaityti savo duomenų failą kaip CSV formato failą. Tai galime padaryti taikydami lambda funkciją kiekvienam RDD elementui taip. Čia mes naudosime žemėlapį () ir imkitės () transformacijos.
from pprint import pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Analizė baigta per {} sekundes '.formatas (apvalus (tt, 3)) pprint (head_rows [0])
Išvestis:
Analizė baigta per 1,715 sekundės [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normalu.]]
SPLITTING:
Dabar norime, kad kiekvienas RDD elementas būtų raktų ir verčių pora, kur raktas yra žyma (pvz., normalus ), o vertė yra visas elementų sąrašas, nurodantis CSV formato failo eilutę. Galėtume elgtis taip. Čia mes naudojame line.split () ir žemėlapis ().
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] )
Išvestis: (u'normalu. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0,00 ', u'1,00', .... U 'nenormalu.]])
RINKTI VEIKSMĄ:
Čia mes naudosime rinkimo () veiksmą. Į atmintį pateks visi RDD elementai. Dėl šios priežasties jis turi būti naudojamas atsargiai dirbant su dideliais RDD.
t0 = laikas () all_raw_data = raw_data.collect () tt = laikas () - t0 spausdinti „Duomenys surinkti per {} sekundes“. formatas (apvalus (tt, 3))
Išvestis:
Duomenys surinkti per 17,927 sekundes
Tai, žinoma, užtruko ilgiau, nei bet kokie kiti veiksmai, kuriuos naudojome anksčiau. Kiekvienas „Spark“ darbuotojo mazgas, turintis RDD fragmentą, turi būti koordinuojamas, kad būtų galima gauti jo dalį ir tada viską sumažinti kartu.
Kaip paskutinį pavyzdį, apjungiantį visus ankstesnius, norime surinkti visusnormalus
sąveikos kaip raktų ir vertės poros.
# gauti duomenis iš failo data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # analizuoti raktų-reikšmių porose key_csv_data = raw_data.map (parse_interaction) # filtruoti įprastas raktų sąveikas normal_key_interactions = key_csv_data.filter lambda x: x [0] == 'normalus'. # surinkti visus t0 = laikas () all_normal = normalus_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'Duomenys surinkti per {} sekundes '.format (round (tt, 3)) print' Yra {} 'įprasta' sąveika'.format (normal_count)
Išvestis:
Duomenys surinkti per 12,485 sekundes Yra 97278 įprastos sąveikos
Taigi viskas, vaikinai!
Tikiuosi, kad jums patiko šis „Spark with Python“ tinklaraštis. Jei skaitote tai, sveikiname! Jūs nebesate „PySpark“ naujokas. Išbandykite šį paprastą pavyzdį savo sistemose dabar.
Dabar, kai supratote „PySpark“ pagrindus, patikrinkite sukūrė „Edureka“ - patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą. „Edureka“ „Python Spark“ sertifikavimo mokymai naudojant „PySpark“ skirtas suteikti jums žinių ir įgūdžių, kurių reikia norint tapti sėkmingu „Spark“ kūrėju naudojant „Python“, ir paruošti jus „Cloudera Hadoop“ ir „Spark Developer“ sertifikavimo egzaminui (CCA175).
Turite mums klausimą? Prašau paminėti tai komentarų skiltyje ir mes su jumis susisieksime.