Introduktion till Spark with Python - PySpark för nybörjare



Apache Spark har tagit över Big Data & Analytics-världen och Python är ett av de mest tillgängliga programmeringsspråken som används i branschen idag. Så här i den här bloggen lär vi oss om Pyspark (gnista med python) för att få ut det bästa av båda världarna.

är en av de mest använda ramarna när det gäller hantering och arbete med Big Data AND Pytonorm är ett av de mest använda programmeringsspråken för dataanalys, maskininlärning och mycket mer. Så varför inte använda dem tillsammans? Det är här Gnista med Python också känd som PySpark kommer indebild.

Med en genomsnittlig lön på $ 110.000 per år för en Apache Spark Developer är det ingen tvekan om att Spark används mycket i branschen. Därför attdessrik biblioteksuppsättning används Python avdemajoriteten av datavetare och Analytics-experter idag. Att integrera Python med Spark var en stor gåva till samhället. Spark utvecklades på Scala-språk, vilket mycket liknar Java. Den sammanställer programkoden till bytkod för JVM för gnistning av big data-behandling. För att stödja Spark med python släppte Apache Spark-communityn PySpark.Alltsedan, har varit känt för att vara en av de mest eftertraktade färdigheterna i branschen på grund av det stora utbudet av fördelar som kom efter att ha kombinerat det bästa från båda dessa världar.I denna Spark with Python-blogg kommer jag att diskutera följande ämnen.





Introduktion till Apache Spark

Apache Spark är ett open-source cluster-computing-ramverk för realtidsbehandling utvecklat av Apache Software Foundation. Spark ger ett gränssnitt för att programmera hela kluster med implicit dataparallellism och feltolerans.



Nedan följer några av funktionerna i Apache Spark som ger det en fördel jämfört med andra ramar:

Spark Features - Spark with Python - Edureka

  • Hastighet: Det är 100 gånger snabbare än traditionella ramar för databehandling i stor skala.
  • Kraftfull caching: Enkelt programmeringslager ger kraftfull cachning och diskhållfasthetsfunktioner.
  • Spridning: Kan distribueras via Mesos, Hadoop via Garn eller Sparks egen klusterhanterare.
  • Realtid: Realtidberäkning och låg latens på grund av beräkning i minnet.
  • Flerspråkig: Det är en av de viktigastefunktionerav detta ramverk eftersom det kan programmeras i Scala, Java, Python och R.

Varför gå till Python?

Även om Spark designades i scala, vilket gör det nästan tio gånger snabbare än Python, men Scala är snabbare bara när antalet kärnor som används är mindre . Eftersom de flesta analyser och processer idag kräver ett stort antal kärnor, är prestandafördelen för Scala inte så mycket.



För programmerare är Python relativt lättare att lära på grund av dess syntax och standardbibliotek. Dessutom är det en dynamiskt skrivet språk, vilket innebär att RDD kan rymma objekt av flera typer.

Även om Scala har SparkMLlib det har inte tillräckligt med bibliotek och verktyg för maskininlärning och NLP syften. Dessutom saknar Scala datavisualisering.

PySpark-utbildning | Apache Spark med Python | Edureka

Prenumerera på vår youtube-kanal för att få nya uppdateringar ..!

Ställa in Spark med Python (PySpark)

Jag hoppas ni vet hur man gör .Så när du har gjort det blixtlås gnistfilen, installerad och lade till det är vägen till .bashrc måste du skriva inkälla .bashrc

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

För att öppna pyspark shell måste du skriva in kommandot./bin/pyspark

Gnista i industrin

Apache Spark på grund av dess fantastiska funktioner som bearbetning i minnet , flerspråkig och snabb bearbetning används av många företag över hela världen för olika ändamål i olika branscher:

Yahoo använder Apache Spark för sina maskininlärningsfunktioner för att anpassa sina nyheter, webbsidor och även för målannonsering. De använder Spark med python för att ta reda på vilken typ av nyheter - användare är intresserade av att läsa och kategorisera nyhetsberättelserna för att ta reda på vilken typ av användare som är intresserade av att läsa varje nyhetskategori.

TripAdvisor använder apache-gnista för att ge råd till miljoner resenärer genom att jämföra hundratals webbplatser för att hitta de bästa hotellpriserna för sina kunder. Tiden det tar att läsa och bearbeta recensionerna av hotellen i ett läsbart format görs med hjälp av Apache Spark.

En av världens största e-handelsplattformar Alibaba driver några av de största Apache Spark-jobben i världen för att analysera hundratals petabyte data på sin e-handelsplattform.

PySpark SparkContext and Data Flow

Pratar om Spark with Python, arbetar med RDDs möjliggörs av biblioteket Py4j. PySpark Shell länkar Python API till gnistkärna och initialiserar Spark Context. Spark Context är hjärtat i alla gnistapplikationer.

  1. Spark-sammanhang skapar interna tjänster och upprättar en anslutning till en Spark-exekveringsmiljö.
  2. Sparkcontext-objektet i förarprogrammet samordnar all den distribuerade processen och tillåter resurstilldelning.
  3. Cluster Managers tillhandahåller exekutörer, som är JVM-processer med logik.
  4. SparkContext-objekt skickar applikationen till exekutörer.
  5. SparkContext utför uppgifter i varje utförare.

PySpark KDD Användningsfall

Låt oss nu titta på en Use Case of KDD'99 Cup (International Knowledge Discovery and Data Mining Tools Competition).Här tar vi en bråkdel av datasetet eftersom den ursprungliga datasetet är för stort

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

SKAPA RDD:
Nu kan vi använda den här filen till skapa vår RDD .

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

FILTRERING:

Antag att vi vill räkna hur många normala. interaktioner vi har i vår dataset. Vi kan filtrera vår raw_data RDD enligt följande.

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

RÄKNA:

Nu kan vi räkna hur många element vi har i den nya RDD.

från tid import tid t0 = tid () normal_count = normal_raw_data.count () tt = tid () - t0 utskrift 'Det finns {}' normala 'interaktioner'. format (normal_count) utskrift 'Antalet slutfört på {} sekunder'. format (rund (tt, 3))

Produktion:

Det finns 97278 'normala' interaktioner Antalet slutfördes på 5,951 sekunder

MAPPING:

I dennafallvi vill läsa vår datafil som en CSV-formaterad. Vi kan göra detta genom att tillämpa en lambda-funktion på varje element i RDD enligt följande. Här kommer vi att använda karta () och ta () transformation.

hur man avslutar ett program Java
från pprint import pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Analys klar på {} sekunder '.format (rund (tt, 3)) pprint (huvudrader [0])

Produktion:

Tolkningen slutfördes på 1.715 sekunder [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normal. ']

SPLITTNING:

Nu vill vi ha varje element i RDD som ett nyckel-värdepar där nyckeln är taggen (t.ex. vanligt ) och värdet är hela listan med element som representerar raden i CSV-formaterad fil. Vi kan fortsätta enligt följande. Här använder vi line.split () och karta ().

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

KOLLEKTIONEN:

Här ska vi använda samlingen (). Det kommer att få alla element i RDD i minnet. Av denna anledning måste den användas med försiktighet när du arbetar med stora RDD.

t0 = tid () all_raw_data = raw_data.collect () tt = tid () - t0 skriv ut 'Data insamlad på {} sekunder'. format (runda (tt, 3))

Produktion:

Data samlades in på 17,927 sekunder

Det tog längre tid som alla andra åtgärder vi använde tidigare, naturligtvis. Varje Spark-arbetarnod som har ett fragment av RDD måste samordnas för att hämta sin del och sedan minska allt tillsammans.

Som ett sista exempel som kombinerar alla föregående vill vi samla allavanligtinteraktioner som nyckel-värdepar.

# få data från filen data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # analysera i nyckel-värde-par key_csv_data = raw_data.map (parse_interaction) # filter normal nyckelinteraktion normal_key_interactions = key_csv_data.filter lambda x: x [0] == 'normal.') # samla alla t0 = tid () all_normal = normal_key_interactions.collect () tt = tid () - t0 normal_count = len (all_normal) skriva ut 'Data samlas in på {} sekunder '.format (rund (tt, 3)) utskrift' Det finns {} 'normala' interaktioner '. format (normal_count)

Produktion:

Data samlas in på 12.485 sekunder Det finns 97278 normala interaktioner

Så det här är det, killar!

Jag hoppas att du gillade den här Spark with Python-bloggen. Om du läser detta, Grattis! Du är inte längre nybörjare i PySpark. Prova detta enkla exempel på dina system nu.

Nu när du har förstått grunderna i PySpark, kolla in av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edureka's Python Spark Certification Training med PySpark är utformad för att ge dig den kunskap och färdigheter som krävs för att bli en framgångsrik Spark Developer med Python och förbereda dig för Cloudera Hadoop och Spark Developer Certification Exam (CCA175).

Har du en fråga till oss? Vänligen nämna det i kommentarfältet så återkommer vi till dig.