Johdatus Sparkiin Pythonilla - PySpark aloittelijoille

Apache Spark on ottanut haltuunsa Big Data & Analytics -maailman ja Python on yksi helpoimmin käytettävissä olevista ohjelmointikielistä, jota teollisuudessa käytetään nykyään. Joten tässä tässä blogissa opimme Pysparkista (kipinä pythonilla) saadaksesi parhaan mahdollisen hyödyn molemmista maailmoista.

on yksi yleisimmin käytetty kehys Big Data AND: n käsittelyssä ja työskentelyssä Python on yksi yleisimmin käytetyistä ohjelmointikielistä tietojen analysointiin, koneoppimiseen ja paljon muuta. Joten, miksi et käytä niitä yhdessä? Täällä Kipinää Pythonin kanssa tunnetaan myös PySpark tuleekuva.

kuinka asettaa java classpath linux-komentoriville

Apache Spark -kehittäjän keskipalkka on 110 000 dollaria vuodessa, joten ei ole epäilystäkään siitä, että Sparkia käytetään teollisuudessa paljon. Koskasenrikas kirjastosarja, Pythonia käyttääsuurin osa datatieteilijöistä ja Analytics-asiantuntijoista tänään. Pythonin integrointi Sparkiin oli merkittävä lahja yhteisölle. Spark kehitettiin Scala-kielellä, joka on hyvin samanlainen kuin Java. Se kokoaa ohjelmakoodin tavukoodiksi JVM: lle suurten tietojen käsittelyä varten. Apache Spark -yhteisö julkaisi PySparkin tukeakseen Sparkia pythonilla.Siitä lähtien, on tiedetty olevan yksi halutuimmista taidoista koko toimialalla, koska molemmissa maailmoissa yhdistyvät parhaat edut.Tässä Spark with Python -blogissa keskustelen seuraavista aiheista.





Johdatus Apache Sparkiin

Apache Spark on avoimen lähdekoodin klusterilaskentakehys reaaliaikainen käsittely kehittänyt Apache Software Foundation. Spark tarjoaa käyttöliittymän kokonaisten klustereiden ohjelmointiin implisiittisellä tietojen rinnakkaisuus ja vikasietoisuus.



Alla on joitain Apache Sparkin ominaisuuksia, jotka antavat sille edun muihin kehyksiin nähden:

Kipinän ominaisuudet - Spark with Python - Edureka

  • Nopeus: Se on sata kertaa nopeampi kuin perinteiset laajamittaiset tietojenkäsittelykehykset.
  • Tehokas välimuisti: Yksinkertainen ohjelmointikerros tarjoaa tehokkaat välimuistin ja levyn pysyvyysominaisuudet.
  • Käyttöönotto: Voidaan ottaa käyttöön Mesosin, Hadoopin langan tai Sparkin oman klusterinhallinnan kautta.
  • Reaaliaika: Reaaliaikalaskenta ja matala viive muistin sisäisen laskennan takia.
  • Polyglotti: Se on yksi tärkeimmistäominaisuudettämän kehyksen, koska se voidaan ohjelmoida Scalassa, Java: ssa, Pythonissa ja R: ssä.

Miksi mennä Pythoniin?

Vaikka Spark suunniteltiin scalassa, mikä tekee siitä lähes 10 kertaa nopeamman kuin Python, mutta Scala on nopeampi vain, kun käytettyjen ytimien määrä on pienempi . Koska suurin osa analyyseistä ja prosesseista vaatii nykyään suuren määrän ytimiä, Scalan suorituskykyetu ei ole niin suuri.



Ohjelmoijille Python on suhteellisen helpompaa oppia syntaksinsa ja vakiokirjastojensa vuoksi. Lisäksi se on dynaamisesti kirjoitettu kieli, mikä tarkoittaa, että RDD: t voivat pitää sisällään monenlaisia ​​esineitä.

Vaikka Scalalla on SparkMLlib sillä ei ole tarpeeksi kirjastoja ja työkaluja koneoppimiseen ja NLP: hen tarkoituksiin. Lisäksi Scalalta puuttuu tietojen visualisointi.

PySpark-koulutus | Apache Spark ja Python | Edureka

Tilaa youtube-kanavamme saadaksesi uusia päivityksiä ..!

Sparkin määrittäminen Pythonilla (PySpark)

Toivottavasti tiedät kuinka .Joten, kun olet purettu kipinätiedosto, asennettu se ja lisäsi sen polun .bashrc tiedosto, sinun on kirjoitettava sisäänlähde .bashrc

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

Voit avata pyspark-kuoren kirjoittamalla komennon./bin/pyspark

Kipinä teollisuudessa

Apache Spark sen hämmästyttävien ominaisuuksien takia, kuten muistin käsittely , polyglotti ja nopea käsittely joita monet yritykset ympäri maailmaa käyttävät eri tarkoituksiin eri toimialoilla:

Yahoo käyttää Apache Sparkia koneoppimiskykyihinsä henkilökohtaisten uutistensa, verkkosivujensa ja myös kohdemainonnan kannalta. He käyttävät Spark with python -sovellusta selvittääkseen millainen uutinen - käyttäjät ovat kiinnostuneita lukemaan ja luokittelemaan uutisjutut saadakseen selville, millaiset käyttäjät haluavat lukea jokaisen uutisryhmän.

TripAdvisor käyttää apache-kipinää neuvotakseen miljoonia matkustajia vertaamalla satoja verkkosivustoja löytääkseen parhaat hotellihinnat asiakkailleen. Aika, joka kuluu hotelliarvostelujen lukemiseen ja käsittelyyn luettavassa muodossa, tehdään Apache Sparkin avulla.

Yksi maailman suurimmista verkkokaupan alustoista Alibaba hoitaa joitakin maailman suurimmista Apache Spark -työpaikoista analysoidakseen satoja petatavuja tietoja sähköisen kaupankäynnin alustallaan.

PySpark SparkContext ja tietovirta

Kun puhutaan Sparkista Pythonin kanssa, RDD: n kanssa työskentely on mahdollista kirjastossa Py4j. PySpark Shell linkittää Python-sovellusliittymän kipinän ytimeen ja alustaa Spark-kontekstin. Kipinäkonteksti on minkä tahansa kipinäsovelluksen sydän.

  1. Spark-konteksti muodostaa sisäiset palvelut ja muodostaa yhteyden Spark-toteutusympäristöön.
  2. Ohjainohjelman kipinäkonteksti-objekti koordinoi kaiken hajautetun prosessin ja mahdollistaa resurssien allokoinnin.
  3. Klusterinjohtajat tarjoavat suorittajille, jotka ovat JVM-prosesseja, logiikkaa.
  4. SparkContext-objekti lähettää sovelluksen toteuttajille.
  5. SparkContext suorittaa tehtävät jokaisessa suorittimessa.

PySpark KDD -käyttölaukku

Katsotaan nyt seuraavaa: Käyttötapaus KDD’99 Cup (Kansainvälinen tiedonhankinta - ja tiedonlouhintatyökalujen kilpailu).Tässä otamme murto-osan tietojoukosta, koska alkuperäinen aineisto on liian iso

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

RDD: N LUOMINEN:
Nyt voimme käyttää tätä tiedostoa luoda RDD .

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

SUODATUS:

Oletetaan, että haluamme laskea kuinka monta normaalia. vuorovaikutukset, joita meillä on tietojoukossa. Me voimme suodattaa raaka_data RDD seuraavasti.

normal_raw_data = raw_data.filter (lambda x: 'normaali.' x: ssä)

KREIVI:

Nyt voimme Kreivi kuinka monta elementtiä meillä on uudessa RDD: ssä.

ajankohdasta tuontiaika t0 = aika () normaali_määrä = normaali_piirustustiedot.luku () tt = aika () - t0 tulosta 'On {}' normaalia 'vuorovaikutusta' .muoto (normaali_määrä) tulosta 'Laskenta suoritettu {} sekunnissa' .muoto (pyöreä (tt, 3))

Tuotos:

Normaalien vuorovaikutusten lukumäärä on 97278, joka suoritetaan 5,951 sekunnissa

KARTOITUS:

Tässätapauksessahaluamme lukea tiedostomme CSV-muotoisena. Voimme tehdä tämän soveltamalla lambda-funktiota jokaiselle RDD: n elementille seuraavasti. Täällä käytämme map () ja ota () muunnos.

pprint-tuonnista pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Jäsennys valmis {} sekunnissa '.formaatti (pyöreä (tt, 3)) pprint (otsikkorivit [0])

Tuotos:

Jäsennys valmistui 1.715 sekunnissa [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normaali.]

HALKAISU:

Haluamme nyt, että jokainen RDD-elementti on avain-arvo-pari, jossa avain on tagi (esim. normaalia ) ja arvo on koko luettelo elementeistä, joka edustaa CSV-muotoisen tiedoston riviä. Voisimme edetä seuraavasti. Tässä käytämme line.split () ja kartta ().

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

KERÄÄ TOIMINTA:

Tässä aiomme käyttää kerätä () -toimintoa. Se vie kaikki RDD-elementit muistiin. Tästä syystä sitä on käytettävä varoen työskenneltäessä suurten RDD: n kanssa.

t0 = aika () all_raw_data = raw_data.collect () tt = time () - t0 tulosta 'Kerätyt tiedot {} sekunnissa'. muoto (pyöreä (tt, 3))

Tuotos:

Tiedot kerättiin 17,927 sekunnissa

Se kesti kauemmin kuin muutkin toimet, joita käytimme aiemmin. Jokainen Spark-työntekijäsolmu, jolla on fragmentti RDD: stä, on koordinoitava, jotta se voi hakea osan ja vähentää sitten kaikkea yhdessä.

Viimeisenä esimerkkinä, joka yhdistää kaikki edelliset, haluamme kerätä kaikkinormaaliavuorovaikutukset avainarvopareina.

# hae tiedot tiedostosta data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # jäsennä avainarvopareiksi key_csv_data = raw_data.map (parse_interaction) # suodattaa normaalit avaimen vuorovaikutukset normal_key_interactions = key_csv_data.fil lambda x: x [0] == 'normaali.') # kerää kaikki t0 = aika () kaikki_normaali = normaalit_avain_interaktiot.collect () tt = aika () - t0 normaali_määrä = len (kaikki_normaali) tulosta 'Tiedot kerätään {} sekunnissa '.format (pyöreä (tt, 3)) tulosta' On olemassa {} 'normaalia' vuorovaikutusta'.format (normal_count)

Tuotos:

Tiedot kerätään 12,485 sekunnissa Normaaleja vuorovaikutuksia on 97278

Joten tämä on se, kaverit!

Toivottavasti pidit tästä Spark with Python -blogista. Jos luet tätä, onnittelut! Et ole enää PySparkin aloittelija. Kokeile tätä yksinkertaista esimerkkiä järjestelmissäsi nyt.

Nyt kun olet ymmärtänyt PySparkin perusteet, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edurekan Python Spark -sertifiointikoulutus PySparkia käyttämällä on suunniteltu tarjoamaan sinulle tietoa ja taitoja, joita tarvitaan menestyvään Pythonia käyttävään Spark-kehittäjään tulemiseen ja valmistautumaan Cloudera Hadoop- ja Spark Developer -sertifiointikokeeseen (CCA175).

Onko sinulla kysymys meille? Mainitse se kommenttiosassa ja palaamme sinuun.