Introduksjon til Spark with Python - PySpark for nybegynnere



Apache Spark har overtatt Big Data & Analytics-verdenen, og Python er et av de mest tilgjengelige programmeringsspråkene som brukes i bransjen i dag. Så her i denne bloggen lærer vi om Pyspark (gnist med python) for å få det beste ut av begge verdener.

er det mest brukte rammeverket når det gjelder håndtering og arbeid med Big Data AND Python er et av de mest brukte programmeringsspråkene for dataanalyse, maskinlæring og mye mer. Så hvorfor ikke bruke dem sammen? Dette er hvor Gnist med Python også kjent som PySpark kommer inndebilde.

Med en gjennomsnittlig lønn på $ 110 000 pa for en Apache Spark Developer, er det ingen tvil om at Spark brukes mye i bransjen. På grunn avdet errikt bibliotekssett, brukes Python avdeflertallet av dataforskere og Analytics-eksperter i dag. Integrering av Python med Spark var en stor gave til samfunnet. Spark ble utviklet på Scala-språk, som ligner veldig på Java. Den kompilerer programkoden til bytekode for JVM for gnistbehandling av store data. For å støtte Spark med python ga Apache Spark-fellesskapet ut PySpark.Helt siden, har vært kjent for å være en av de mest etterspurte ferdighetene i hele bransjen på grunn av det brede spekteret av fordeler som kom etter å ha kombinert det beste fra begge disse verdener.I denne Spark with Python-bloggen vil jeg diskutere følgende emner.





Introduksjon til Apache Spark

Apache Spark er et åpen kildekode-klyngedatamiljø for sanntidsbehandling utviklet av Apache Software Foundation. Spark gir et grensesnitt for å programmere hele klynger med implisitt dataparallellisme og feiltoleranse.



Nedenfor er noen av funksjonene i Apache Spark som gir den en fordel i forhold til andre rammer:

Gnistfunksjoner - Gnist med Python - Edureka

  • Hastighet: Det er 100 ganger raskere enn tradisjonelle store databehandlingsrammer.
  • Kraftig hurtigbufring: Enkelt programmeringslag gir kraftige hurtigbufring og diskbestandighet.
  • Utplassering: Kan distribueres gjennom Mesos, Hadoop via Garn eller Sparks egen klyngesjef.
  • Sanntid: Sanntidberegning og lav ventetid på grunn av beregning i minnet.
  • Polyglot: Det er en av de viktigsteegenskaperav dette rammeverket slik det kan programmeres i Scala, Java, Python og R.

Hvorfor gå til Python?

Selv om Spark ble designet i scala, som gjør det nesten 10 ganger raskere enn Python, men Scala er raskere bare når antall kjerner som brukes er mindre . Ettersom det meste av analysen og prosessen i dag krever et stort antall kjerner, er ikke ytelsesfordelen til Scala så mye.



For programmerere er Python det relativt enklere å lære på grunn av sin syntaks og standardbiblioteker. Dessuten er det en dynamisk skrevet språk, som betyr at RDD kan inneholde objekter av flere typer.

Selv om Scala har SparkMLlib det har ikke nok biblioteker og verktøy for maskinlæring og NLP formål. Videre mangler Scala datavisualisering.

PySpark Trening | Apache Spark med Python | Edureka

Abonner på youtube-kanalen vår for å få nye oppdateringer ..!

Sette opp Spark with Python (PySpark)

Jeg håper dere vet hvordan .Så når du har gjort det pakket ut gnistfilen, installert den og la den til .bashrc filen, må du skrive innkilde .bashrc

rekursiv retracement c ++
eksporter 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

For å åpne pyspark shell må du skrive inn kommandoen./bin/pyspark

Gnist i industrien

Apache Spark på grunn av fantastiske funksjoner som behandling i minnet , polyglot og rask behandling brukes av mange selskaper over hele verden til forskjellige formål i forskjellige bransjer:

Yahoo bruker Apache Spark for sine maskinlæringsegenskaper for å tilpasse sine nyheter, websider og også for målannonsering. De bruker Spark med python for å finne ut hva slags nyheter - brukere er interessert i å lese og kategorisere nyhetshistoriene for å finne ut hva slags brukere som vil være interessert i å lese hver kategori av nyheter.

TripAdvisor bruker apache-gnist for å gi råd til millioner av reisende ved å sammenligne hundrevis av nettsteder for å finne de beste hotellprisene for sine kunder. Tiden det tar å lese og behandle anmeldelser av hotellene i et lesbart format gjøres ved hjelp av Apache Spark.

En av verdens største e-handelsplattformer Alibaba driver noen av de største Apache Spark-jobbene i verden for å analysere hundrevis av petabyte med data på sin e-handelsplattform.

PySpark SparkContext og dataflyt

Når vi snakker om Spark with Python, er det mulig å arbeide med RDDs av biblioteket Py4j. PySpark Shell kobler Python API til gnistkjerne og initialiserer Spark Context. Spark Context er hjertet i enhver gnistapplikasjon.

  1. Spark-kontekst setter opp interne tjenester og oppretter en forbindelse til et Spark-utførelsesmiljø.
  2. Sparkcontext-objektet i driverprogrammet koordinerer all den distribuerte prosessen og tillater ressurstildeling.
  3. Cluster Managers gir eksekutører, som er JVM-prosess med logikk.
  4. SparkContext-objekt sender applikasjonen til utførere.
  5. SparkContext utfører oppgaver i hver utfører.

PySpark KDD Use Case

La oss nå ta en titt på en Use Case of KDD’99 Cup (International Knowledge Discovery and Data Mining Tools Competition).Her tar vi en brøkdel av datasettet fordi det opprinnelige datasettet er for stort

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

SKAPE RDD:
Nå kan vi bruke denne filen til lage vår RDD .

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

FILTRERING:

Anta at vi vil telle hvor mange normale. interaksjoner vi har i datasettet vårt. Vi kan filter vår raw_data RDD som følger.

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

TELLE:

Nå kan vi telle hvor mange elementer vi har i den nye RDD.

fra tidspunkt for import tid t0 = tid () normal_telling = normal_raw_data.count () tt = tid () - t0 utskrift 'Det er {}' normale 'interaksjoner'. format (normal_telling) utskrift 'Antall fullført på {} sekunder'. format (rund (tt, 3))

Produksjon:

Det er 97278 'normale' interaksjoner Count fullført på 5.951 sekunder

KARTLEGGING:

I dettesakvi vil lese datafilen vår som en CSV-formatert. Vi kan gjøre dette ved å bruke en lambda-funksjon på hvert element i RDD som følger. Her skal vi bruke kart () og ta () transformasjon.

fra pprint import pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Analyse fullført på {} sekunder '.format (rund (tt, 3)) pprint (head_rows [0])

Produksjon:

Analyse fullført på 1.715 sekunder [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normal. ']

SPLITTING:

Nå ønsker vi å ha hvert element i RDD som et nøkkelverdipar der nøkkelen er taggen (f.eks. normal ) og verdien er hele listen over elementer som representerer raden i CSV-formatert fil. Vi kan gå frem som følger. Her bruker vi line.split () og kart ().

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] )
 Produksjon: (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. '])

SAMLINGEN:

Her skal vi bruke samle () handlingen. Det vil få alle elementene i RDD i minnet. Av denne grunn må den brukes med forsiktighet når du arbeider med store RDD.

t0 = tid () all_raw_data = raw_data.collect () tt = tid () - t0 skriv ut 'Data samlet i {} sekunder'. format (runde (tt, 3))

Produksjon:

Data samlet inn på 17,927 sekunder

Det tok lenger tid som alle andre handlinger vi brukte før, selvfølgelig. Hver Spark-arbeiderknute som har et fragment av RDD, må koordineres for å hente sin del og deretter redusere alt sammen.

Som et siste eksempel som kombinerer alt det forrige, vil vi samle allenormalinteraksjoner som nøkkelverdipar.

# få data fra fil data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # del i nøkkelverdipar key_csv_data = raw_data.map (parse_interaction) # filter normale nøkkelinteraksjoner normal_key_interactions = key_csv_data.filter ( lambda x: x [0] == 'normal.') # samle alle t0 = tid () all_normal = normal_key_interactions.collect () tt = tid () - t0 normal_count = len (all_normal) utskrift 'Data samlet på {} sekunder '.format (rund (tt, 3)) utskrift' Det er {} 'normale' interaksjoner '. format (normal_tall)

Produksjon:

Data samlet på 12.485 sekunder Det er 97278 normale interaksjoner

Så dette er det, gutter!

Jeg håper du likte denne Spark with Python-bloggen. Hvis du leser dette, Gratulerer! Du er ikke lenger en nybegynner i PySpark. Prøv dette enkle eksemplet på systemene dine nå.

Nå som du har forstått grunnleggende om PySpark, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Edureka’s Python Spark-sertifiseringstrening ved bruk av PySpark er designet for å gi deg den kunnskapen og ferdighetene som kreves for å bli en vellykket Spark Developer ved hjelp av Python og forberede deg på Cloudera Hadoop og Spark Developer Certification Exam (CCA175).

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet, så kommer vi tilbake til deg.