Uvod v Iskro z Pythonom - PySpark za začetnike



Apache Spark je prevzel svet velikih podatkov in analitike, Python pa je eden najbolj dostopnih programskih jezikov, ki se danes uporabljajo v industriji. Torej, v tem blogu bomo izvedeli več o Pysparku (iskri s pythonom), da dobimo najboljše iz obeh svetov.

je eden najpogosteje uporabljenih okvirov pri ravnanju z Big Data IN in delu z njimi Python je eden najpogosteje uporabljenih programskih jezikov za analizo podatkov, strojno učenje in še veliko več. Zakaj jih torej ne bi uporabili skupaj? Tu je Iskrica s Pythonom poznan tudi kot PySpark pride vslika.

razčlenitev datoteke xml v javi

S povprečno plačo 110.000 USD na leto za razvijalca Apache Spark ni nobenega dvoma, da se Spark v tej panogi veliko uporablja. Zaradisvojebogat nabor knjižnic, Python uporabljadanes večina podatkovnih znanstvenikov in strokovnjakov za Analytics. Integracija Pythona s Sparkom je bila glavno darilo skupnosti. Spark je bil razvit v jeziku Scala, ki je zelo podoben Javi. Programsko kodo prevede v bajtno kodo za JVM za obdelavo velikih podatkov. Za podporo Sparku s pythonom je skupnost Apache Spark izdala PySpark.Odkar, je bilo znano kot eno najbolj iskanih veščin v industriji zaradi široke palete prednosti, ki so nastale po združitvi najboljših iz obeh svetov.V tem blogu Spark with Python bom obravnaval naslednje teme.





Uvod v Apache Spark

Apache Spark je odprtokodni okvir za računanje grozdov za obdelava v realnem času razvila fundacija Apache Software Foundation. Spark ponuja vmesnik za programiranje celotnih gruč z implicitnim paralelnost podatkov in odpornost na napake.



Spodaj je nekaj lastnosti Apache Spark, ki mu daje prednost pred drugimi okviri:

Značilnosti isker - Iskra s Pythonom - Edureka

  • Hitrost: Je 100-krat hitrejši od tradicionalnih obsežnih okvirov za obdelavo podatkov.
  • Zmogljivo predpomnjenje: Enostavna programska plast nudi zmogljive zmogljivosti predpomnjenja in trajanja diska.
  • Uvajanje: Lahko se uvede prek Mesosa, Hadoopa prek Preje ali Sparkovega lastnega upravitelja grozdov.
  • V realnem času: V realnem časuizračun in nizka zakasnitev zaradi izračuna v pomnilniku.
  • Poliglot: Je ena najpomembnejšihLastnostitega okvira, saj ga je mogoče programirati v Scali, Javi, Pythonu in R.

Zakaj izbrati Python?

Čeprav je bil Spark zasnovan v skali, zaradi česar je skoraj 10-krat hitrejši od Pythona, vendar je Scala hitrejša le, če je število uporabljenih jeder je manjše . Ker danes večina analiz in procesov zahteva veliko število jeder, Scala v zmogljivosti ni tako velika.



Za programerje Python je sorazmerno lažje učiti se zaradi svoje sintakse in standardnih knjižnic. Poleg tega je dinamično tipkani jezik, kar pomeni, da lahko RDD vsebujejo predmete več vrst.

Čeprav je Scala SparkMLlib nima dovolj knjižnic in orodij za strojno učenje in NLP namene. Poleg tega Scala nima vizualizacije podatkov.

Usposabljanje PySpark | Apache Spark s Pythonom | Edureka

Naročite se na naš youtube kanal in prejemajte nove posodobitve ..!

Nastavitev Spark s Pythonom (PySpark)

Upam, da boste znali .Torej, ko enkrat razpakirano datoteka iskri, nameščen in dodal, da je pot do .bashrc datoteko, morate vtipkativir .bashrc

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

Če želite odpreti lupino pyspark, morate vnesti ukaz./bin/pyspark

Iskra v industriji

Apache Spark zaradi svojih neverjetnih lastnosti, kot so obdelava v pomnilniku , poliglot in hitra obdelava jih uporabljajo številna podjetja po vsem svetu za različne namene v različnih panogah:

Yahoo uporablja Apache Spark zaradi svojih zmožnosti strojnega učenja za prilagajanje svojih novic, spletnih strani in tudi za ciljno oglaševanje. Uporabljajo Iskro s pythonom, da ugotovijo, kakšne novice - uporabniki želijo brati in kategorizirajo novice, da ugotovijo, kakšne uporabnike bi zanimalo branje posamezne kategorije novic.

TripAdvisor uporablja apache spark za svetovanje milijonom popotnikov s primerjavo na stotine spletnih mest, da bi našli najboljše hotelske cene za svoje stranke. Čas, potreben za branje in obdelavo mnenj o hotelih v berljivi obliki, je narejen s pomočjo Apache Spark.

Ena največjih svetovnih platform za e-poslovanje Alibaba vodi nekaj največjih delovnih mest Apache Spark na svetu, da bi analiziral na stotine petabajtov podatkov na svoji platformi za e-poslovanje.

PySpark SparkContext in pretok podatkov

Ko govorimo o Iskri s Pythonom, delo z RDD-ji omogoča knjižnica Py4j. PySpark Shell poveže Python API z jedrom iskra in inicializira Spark Context. Iskreni kontekst je srce vsake uporabe isker.

  1. Spark context postavlja notranje storitve in vzpostavlja povezavo z okoljem za izvajanje Spark.
  2. Objekt sparkcontext v gonilniškem programu usklajuje ves porazdeljeni postopek in omogoča dodeljevanje virov.
  3. Upravitelji grozdov zagotavljajo izvršitelje, ki so proces JVM z logiko.
  4. Objekt SparkContext pošlje aplikacijo izvršiteljem.
  5. SparkContext izvaja naloge v vsakem izvršitelju.

Primer uporabe PySpark KDD

Zdaj pa si oglejmo primer uporabe Pokal KDD’99 (Mednarodno tekmovanje v orodjih za odkrivanje znanja in orodja za pridobivanje podatkov).Tu bomo vzeli del nabora podatkov, ker je izvirni nabor podatkov prevelik

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

USTVARJANJE RDD:
Zdaj lahko to datoteko uporabimo za ustvarite naš RDD .

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

FILTRIRANJE:

Recimo, da želimo prešteti, koliko jih je normalnih. interakcije, ki jih imamo v našem naboru podatkov. Mi lahko filter naš RDD raw_data, kot sledi.

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

ŠTEVILO:

Zdaj lahko štetje koliko elementov imamo v novem RDD.

od časa čas uvoza t0 = čas () normal_count = normal_raw_data.count () tt = time () - t0 print 'Obstajajo {}' normalne 'interakcije'.format (normal_count) print' Število dokončano v {} sekundah'.format (okrogla (tt, 3))

Izhod:

Obstaja 97278 'običajnih' interakcij Število zaključenih v 5,951 sekundah

KARTIRANJE:

V temOviteksvojo podatkovno datoteko želimo brati kot oblikovano v obliki CSV. To lahko storimo z uporabo lambda funkcije za vsak element v RDD, kot sledi. Tu bomo uporabili preslikava map () in take ().

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 'Razčlenitev končana v {} sekundah '.format (round (tt, 3)) pprint (head_rows [0])

Izhod:

Razčlenitev je končana v 1,715 sekundah [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normal. ']

DELITEV:

Zdaj želimo imeti vsak element v RDD kot par ključ-vrednost, kjer je ključ oznaka (npr. normalno ) in vrednost je celoten seznam elementov, ki predstavlja vrstico v datoteki v obliki CSV. Lahko bi nadaljevali takole. Tu uporabljamo line.split () in map ().

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] )
 Izhod: (u'normal. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0,00 ', u'1,00', .... U'normal. '])

ZBIRANJE AKCIJE:

Tu bomo uporabili akcijo zbiranja (). V pomnilnik bo dobil vse elemente RDD. Zaradi tega ga je treba pri delu z velikimi RDD uporabljati previdno.

t0 = time () all_raw_data = raw_data.collect () tt = time () - t0 print 'Podatki zbrani v {} sekundah'.format (krog (tt, 3))

Izhod:

Podatki zbrani v 17.927 sekundah

To je seveda trajalo dlje kot katero koli drugo dejanje, ki smo ga uporabljali prej. Vsako delovno vozlišče Spark, ki ima fragment RDD, je treba uskladiti, da pridobi njegov del in nato vse skupaj zmanjša.

Kot zadnji primer, ki združuje vse prejšnje, želimo zbrati vsenormalnointerakcije kot pari ključ / vrednost.

# pridobi podatke iz datoteke data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # razčleni v pare ključ-vrednost key_csv_data = raw_data.map (parse_interaction) # filtriraj običajne interakcije s ključem normal_key_interactions = key_csv_data. lambda x: x [0] == 'normalno.') # zberi vse t0 = time () all_normal = normal_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'Podatki zbrani v {} sekundah '.format (round (tt, 3)) print' Obstajajo {} 'običajne' interakcije'.format (normal_count)

Izhod:

Podatki, zbrani v 12.485 sekundah Obstaja 97278 običajnih interakcij

To je to, fantje!

Upam, da ste uživali v tem blogu Spark with Python. Če berete to, čestitamo! Niste več začetnik PySparka. Preizkusite ta preprost primer v svojih sistemih zdaj.

Zdaj, ko ste razumeli osnove PySparka, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, razširjenih po vsem svetu. Edureka Usposabljanje za certificiranje Python Spark z uporabo PySparka je zasnovan tako, da vam zagotavlja znanje in spretnosti, ki so potrebna za uspeh razvijalca Spark z uporabo Pythona in vas pripravijo na izpit za certifikacijo Cloudera Hadoop in Spark Developer (CCA175).

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili.