Úvod do programu Spark s Pythonom - PySpark pre začiatočníkov



Apache Spark ovládol svet Big Data & Analytics a Python je dnes jedným z najdostupnejších programovacích jazykov používaných v tomto priemysle. Takže tu v tomto blogu sa dozvieme o Pysparku (iskra s pythonom), aby sme z oboch svetov dostali to najlepšie.

je jedným z najbežnejšie používaných rámcov, pokiaľ ide o manipuláciu a prácu s Big Data AND Python je jedným z najbežnejšie používaných programovacích jazykov pre analýzu dát, strojové učenie a oveľa viac. Prečo ich teda nepoužiť spolu? Toto je kde Iskrte s Pythonom taktiež známy ako PySpark prichádza dotheobrázok.

veľkosť poľa v JavaScripte

S priemerným platom 110 000 dolárov ročne pre vývojára Apache Spark nie je pochýb o tom, že Spark sa v priemysle často používa. Kvôlijehobohatá knižnica, Python používathednes väčšina odborníkov na údaje a analytikov. Integrácia Pythonu so Sparkom bola hlavným darom pre komunitu. Spark bol vyvinutý v jazyku Scala, ktorý je veľmi podobný jazyku Java. Zostavuje programový kód do bytecode pre JVM na vyvolanie veľkého množstva dát. Na podporu Sparku s pythonom vydala komunita Apache Spark program PySpark.Od vtedy, je známe, že je jednou z najvyhľadávanejších zručností v celom odbore vďaka širokej škále výhod, ktoré prišli po spojení toho najlepšieho z oboch týchto svetov.V tomto blogu Spark with Python sa budem venovať nasledujúcim témam.





Úvod do Apache Spark

Apache Spark je open-source klastrový výpočtový rámec pre spracovanie v reálnom čase vyvinutý Apache Software Foundation. Spark poskytuje rozhranie na implicitné programovanie celých klastrov paralelnosť údajov a odolnosť proti chybám.



Nižšie uvádzame niektoré z funkcií servera Apache Spark, ktoré mu poskytujú náskok pred ostatnými rámcami:

Funkcie Spark - Spark s Pythonom - Edureka

  • Rýchlosť: Je to stokrát rýchlejšie ako tradičné rozsiahle rámce na spracovanie údajov.
  • Výkonné ukladanie do pamäte cache: Jednoduchá programovacia vrstva poskytuje výkonné možnosti ukladania do pamäte cache a pretrvávania disku.
  • Nasadenie: Možno nasadiť cez Mesos, Hadoop cez Yarn alebo vlastného správcu klastrov Sparku.
  • Reálny čas: Reálny časvýpočet a nízka latencia z dôvodu výpočtu v pamäti.
  • Polyglot: Je to jeden z najdôležitejšíchVlastnostitohto rámca, pretože ho možno programovať v programoch Scala, Java, Python a R.

Prečo ísť na Python?

Aj keď bol Spark navrhnutý v mierke, vďaka čomu je takmer 10-krát rýchlejší ako Python, ale Scala je rýchlejšia, iba ak počet použitých jadier je menší . Pretože väčšina dnešných analýz a procesov vyžaduje veľké množstvo jadier, výkonová výhoda Scaly nie je až taká veľká.



Pre programátorov je Python porovnateľne jednoduchšie učiť sa kvôli svojej syntaxi a štandardným knižniciam. Navyše je to a dynamicky písaný jazyk, čo znamená, že RDD môžu obsahovať objekty viacerých typov.

Aj keď Scala má SparkMLlib nemá dostatok knižníc a nástrojov pre strojové učenie a NLP účely. Scale navyše chýba vizualizácia údajov.

Školenie PySpark Apache Spark s Pythonom Edureka

Prihláste sa na odber nášho kanála na YouTube a získajte nové aktualizácie ..!

Nastavenie Spark s Pythonom (PySpark)

Dúfam, že viete, chlapci .Takže keď už máte rozopnutý súbor iskier, nainštalovaný a pridal svoju cestu k .bashrc súbor, musíte napísaťzdroj .bashrc

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

Ak chcete otvoriť shell pyspark, musíte napísať príkaz./bin/pyspark

Iskra v priemysle

Apache Spark vďaka jeho úžasným funkciám, ako je spracovanie v pamäti , polyglot a rýchle spracovanie sú využívané mnohými spoločnosťami po celom svete na rôzne účely v rôznych priemyselných odvetviach:

Yahoo používa Apache Spark pre svoje schopnosti strojového učenia na prispôsobenie svojich správ, webových stránok a tiež na cieľovú reklamu. Používajú program Spark s pythonom na zistenie toho, aký druh správ - používatelia majú záujem o čítanie a kategorizáciu správ, aby zistili, aký druh používateľov by mal záujem o prečítanie jednotlivých kategórií správ.

TripAdvisor využíva apache spark na poskytovanie rád miliónom cestujúcich porovnávaním stoviek webových stránok s cieľom nájsť najvýhodnejšie ceny hotelov pre svojich zákazníkov. Čas potrebný na prečítanie a spracovanie recenzií hotelov v čitateľnom formáte sa robí pomocou aplikácie Apache Spark.

Jedna z najväčších svetových platforiem elektronického obchodu Alibaba prevádzkuje niektoré z najväčších úloh Apache Spark na svete s cieľom analyzovať stovky petabajtov dát na svojej platforme elektronického obchodu.

PySpark SparkContext a dátový tok

Keď už hovoríme o Spark s Pythonom, prácu s RDD umožňuje knižnica Py4j. PySpark Shell spája rozhranie Python API s iskrovým jadrom a inicializuje kontext Spark. Iskrový kontext je srdcom každej aplikácie iskry.

  1. Kontext Spark nastavuje interné služby a nadväzuje pripojenie k prostrediu vykonávania Spark.
  2. Objekt sparkcontext v ovládacom programe koordinuje celý distribuovaný proces a umožňuje alokáciu zdrojov.
  3. Správcovia klastrov poskytujú exekútorov, čo sú procesy JVM s logikou.
  4. Objekt SparkContext odošle aplikáciu exekútorom.
  5. SparkContext vykonáva úlohy v každom exekútorovi.

Prípad použitia PySpark KDD

Teraz sa pozrime na Prípad použitia KDD’99 Cup (Medzinárodná súťaž v získavaní vedomostí a v nástrojoch na dolovanie dát).Tu vezmeme zlomok množiny údajov, pretože pôvodná množina údajov je príliš veľká

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

TVORBA RDD:
Teraz môžeme tento súbor použiť na vytvorte náš RDD .

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

FILTROVANIE:

Predpokladajme, že chceme spočítať, koľko normálnych. interakcie, ktoré máme v našom súbore údajov. Môžeme filter naše raw_data RDD nasledovne.

normal_raw_data = raw_data.filter (lambda x: 'normal.' v x)

COUNT:

Teraz môžeme počítať koľko prvkov máme v novom RDD.

od času importu čas t0 = čas () normal_count = normal_raw_data.count () tt = time () - t0 tlač 'Existuje {}' bežné 'interakcie'. formát (normal_count) tlač 'Počet dokončený za {} sekúnd'.formát (okrúhle (tt, 3))

Výkon:

Existuje 97278 „normálnych“ interakcií Počet dokončených za 5,951 sekundy

MAPOVANIE:

V tomtoprípadechceme si prečítať náš dátový súbor ako súbor vo formáte CSV. Môžeme to urobiť aplikáciou funkcie lambda na každý prvok v RDD nasledujúcim spôsobom. Tu použijeme transformácia map () a take ().

z importu tlače pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Analýza bola dokončená za {} sekúnd '.formát (guľatý (tt, 3)) pprint (head_rows [0])

Výkon:

Analýza bola dokončená za 1 715 sekúnd [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normal. ']

ROZDELENIE:

Teraz chceme mať každý prvok v RDD ako pár kľúč - hodnota, kde kľúčom je značka (napr. normálne ) a hodnotou je celý zoznam prvkov, ktoré predstavujú riadok v súbore vo formáte CSV. Mohli by sme postupovať nasledovne. Tu používame line.split () a mapa ().

def parse_interaction (line): elems = line.split (',') tag = elems [41] návrat (tag, elems) key_csv_data = raw_data.map (parse_interaction) head_rows = key_csv_data.take (5) pprint (head_rows [0] )
 Výkon: (u'normálne. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0,00 ', u'1,00', .... neobvyklé. '])

SPOLOČNÁ AKCIA:

Tu použijeme akciu collect (). Dostane do pamäte všetky prvky RDD. Z tohto dôvodu sa pri práci s veľkými RDD musí používať opatrne.

t0 = time () all_raw_data = raw_data.collect () tt = time () - t0 tlač 'Údaje zhromaždené za {} sekundy'. formát (zaokrúhlené (tt, 3))

Výkon:

Údaje zhromaždené za 17 927 sekúnd

To samozrejme trvalo dlhšie ako iné kroky, ktoré sme predtým použili. Každý pracovný uzol Spark, ktorý má fragment RDD, musí byť koordinovaný, aby získal svoju časť a potom zmenšil všetko dohromady.

Ako posledný príklad kombinujúci všetky predchádzajúce chceme zhromaždiť všetkonormálneinterakcie ako páry kľúč - hodnota.

# získať dáta zo súboru data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # analyzovať do párov kľúč - hodnota key_csv_data = raw_data.map (parse_interaction) # filter normal key key interakcie normal_key_interactions = key_csv_data.filter ( lambda x: x [0] == 'normal.') # collect all t0 = time () all_normal = normal_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'Údaje zhromaždené za {} s '.formát (okrúhly (tt, 3)) tlač' Existujú {} 'bežné' interakcie'.formát (normálny_počet)

Výkon:

Údaje zhromaždené za 12,485 sekundy Existuje 97278 bežných interakcií

Takže toto je, chlapci!

Dúfam, že sa vám blog Spark with Python páčil. Ak toto čítate, gratulujeme! Už nie ste v PySparku nováčikom. Vyskúšajte tento jednoduchý príklad na svojich systémoch teraz.

Teraz, keď ste pochopili základy PySparku, pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Edureka’s Výcvik certifikácie Python Spark pomocou PySpark je navrhnutý tak, aby vám poskytol vedomosti a zručnosti potrebné na to, aby ste sa stali úspešným vývojárom Spark pomocou Pythonu, a pripraví vás na certifikačnú skúšku Cloudera Hadoop a Spark Developer Certification Exam (CCA175).

Máte na nás otázku? Uveďte to prosím v sekcii komentárov a my sa vám ozveme.