PySpark Tutorial - Lær Apache Spark ved hjelp av Python



I denne bloggen på PySpark Tutorial vil du lære om PSpark API som brukes til å jobbe med Apache Spark ved hjelp av Python Programming Language.

I en verden der data genereres i en så alarmerende hastighet, er den korrekte analysen av dataene til riktig tid veldig nyttig. En av de mest fantastiske rammene for å håndtere store data i sanntid og utføre analyser er Apache Spark.Sammen, eller PySpark er et av de mest etterspurte sertifiseringskursene, og gir Scala for Spark et løp for pengene. Så i dette PySpark-veiledning blogg, vil jeg diskutere følgende emner:





PySpark Tutorial: Hva er PySpark?

Apache Spark er et raskt klyngerammeverk som brukes til å behandle, spørre og analysere Big data. Basert på beregning i minnet har den en fordel i forhold til flere andre store datarammeverk.

PySpark-funksjoner - PySpark-opplæring - Edureka



Opprinnelig skrevet på Scala Programming Language, og åpen kildekode har utviklet et fantastisk verktøy for å støtte Python for Apache Spark. PySpark hjelper dataforskere med å grensesnitt med RDD i Apache Spark og Python gjennom biblioteket Py4j. Det er mange funksjoner som gjør PySpark til et bedre rammeverk enn andre:

  • 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: Sanntidsberegning og lav ventetid på grunn av beregning i minnet
  • Polyglot: Støtter programmering i Scala, Java, Python og R

La oss gå videre med vår PySpark opplæringsblogg og se hvor Spark brukes i bransjen.

PySpark i bransjen

Hver bransje dreier seg om Big Data, og hvor det er Big Data, er analyse involvert. Så la oss ta en titt på de forskjellige bransjene der Apache Spark brukes.



Halv er en av de største bransjene som vokser mot online streaming. Netflix bruker Apache Spark for strømbehandling i sanntid for å gi tilpassede online anbefalinger til sine kunder. Det prosesser 450 milliarder hendelser per dag som strømmer til applikasjoner på serversiden.

Finansiere er en annen sektor der Apache Sparks sanntidsbehandling spiller en viktig rolle. Bankene bruker Spark for å få tilgang til og analysere profiler på sosiale medier, for å få innsikt som kan hjelpe dem med å ta riktige forretningsbeslutninger for vurdering av kredittrisiko , målrettede annonser og kundesegmentering. Kunde Churn reduseres også med Spark. Bedrageri er et av de mest brukte områdene innen maskinlæring der Spark er involvert.

Helsevesen leverandører bruker Apache Spark til Analyser pasientjournaler sammen med tidligere kliniske data for å identifisere hvilke pasienter som sannsynligvis vil møte helseproblemer etter utskrivning fra klinikken. Apache Spark brukes i Genomisk sekvensering for å redusere tiden det tar å behandle genomdata.

Detaljhandel og e-handel er en bransje der man ikke kan forestille seg at den kjører uten bruk av analyse og målrettet annonsering. En av de største e-handelsplattformene i dag Alibaba driver noen av de største Spark Jobs i verden for å analysere petabyte med data. Alibaba opptrer funksjonsekstraksjon i bildedata. eBay bruker Apache Spark for å levere Målrettede tilbud , forbedre kundeopplevelsen og optimalisere den generelle ytelsen.

pl sql tutorial for nybegynnere

Reise Industrier bruker også Apache Spark. TripAdvisor , et ledende nettside som hjelper brukere med å planlegge en perfekt tur, bruker Apache Spark for å øke hastigheten på personlige kundeanbefalinger .TripAdvisor bruker apache-gnist for å gi råd til millioner av reisende sammenligne hundrevis av nettsteder for å finne de beste hotellprisene for sine kunder.

Et viktig aspekt av denne PySpark-opplæringen er å forstå hvorfor vi trenger å gå for Python? Hvorfor ikke Java, Scala eller R?

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


Hvorfor gå for Python?

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

Et stort sett med biblioteker: Scala har ikke tilstrekkelig datavitenskapelige verktøy og biblioteker som Python for maskinlæring og naturlig språkbehandling. Videre mangler Scala god visualisering og lokale datatransformasjoner.

Stor samfunnsstøtte: Python har et globalt fellesskap med millioner av utviklere som samhandler online og offline på tusenvis av virtuelle og fysiske steder.

Et av de viktigste temaene i denne PySpark-opplæringen er bruken av RDD. La oss forstå hva som er RDD

Gnist RDD

Når det gjelder iterativ distribuert databehandling, dvs. behandling av data over flere jobber i beregninger, må vi gjenbruke eller dele data mellom flere jobber. Tidligere rammer som Hadoop hadde problemer med å håndtere flere operasjoner / jobber som

  • Lagring av data i mellomlagring som HDFS
  • Flere I / O-jobber gjør beregningene langsomme
  • Replikasjoner og serialisasjoner som igjen gjør prosessen enda tregere

RDDs prøver å løse alle problemene ved å muliggjøre feiltolerante beregninger i minnet. RDD er en forkortelse for Spenstige distribuerte datasett. RDD er en distribuert minneabstrahering som lar programmerere utføre beregninger i minnet på store klynger på en feiltolerant måte. De er skrivebeskyttet samling av gjenstander partisjonert over et sett med maskiner som kan gjenoppbygges hvis en partisjon går tapt. Det er flere operasjoner utført på RDD:

  • Transformasjoner: Transformasjoner oppretter et nytt datasett fra et eksisterende. Lat evaluering
  • Handlinger: Spark tvinger bare beregningene til utføring når handlinger påkalles RDD-ene

La oss forstå noen få transformasjoner, handlinger og funksjoner

Lese en fil og vise Top n-elementer:

rdd = sc.textFile ('file: /// home / edureka / Desktop / Sample') rdd.take (n)

Produksjon:

[u'Avskoging oppstår som det viktigste miljømessige og sosiale problemet som nå har tatt form av mer enn en mektig demon. ', u'Vi må vite om årsakene, virkningene og måtene å løse problemene som oppstod på grunn av avskogingen. Vi har gitt mange avsnitt, lange og korte essays om avskoging for å hjelpe barna og barna dine til å bli oppmerksomme på problemet, samt delta i essay skrivekonkurransen på skolen eller utenfor skolen. ', u'Du kan velge hvilken som helst avskogingsoppgave gitt nedenfor i henhold til klassestandarden. ', u'Oppskoging oppstår som det største globale problemet for samfunnet og miljøet.']

Konvertering til små bokstaver og splitting: (Nedre og delt)

def Func (linjer): linjer = linjer. lavere () linjer = linjer. splitt () returlinjer rdd1 = rdd.map (Func) rdd1.take (5)

Produksjon:

[[u'deforestation ', u'is', u'arising ', u'as', u'the ', u'main', u'environmental ', u'and', u'social ', u'issue ', u'which', u'has ', u'now', u'taken ', ...... . . ]

Fjerne stoppord: (Filter)

stop_words = ['a', 'all', 'the', 'as', 'is', 'am', 'an', 'and', 'be', 'been', 'from', 'had' , 'Jeg', 'Jeg', 'hvorfor', 'med'] rdd2 = rdd1.filter (lambda z: z ikke i stoppord) rdd2.take (10)

Produksjon:

[u'deforestation ', u'arising', u'main ', u'environmental', u'social ', u'issue', u'which ', u'has', u'now ', u'taken' ]

Summen av tall fra 1 til 500: (Reduser)

sum_rdd = sc.parallelize (område (1500)) sum_rdd.reduce (lambda x, y: x + y)

Produksjon:

124750

Maskinlæring med PySpark

Fortsetter vår PySpark opplæringsblogg, la oss analysere noen BasketBall-data og gjøre noen fremtidig prediksjon. Så her skal vi bruke basketballdataene til alle NBA-spillerne siden 1980 [introduksjonsår for 3 pekere].

Datainnlasting:

df = spark.read.option ('header', 'true'). option ('inferSchema', 'true') .csv ('file: ///home/edureka/Downloads/season_totals.csv')

Utskrift av kolonner:

hva er har et forhold i java
skriv ut (df.kolonner)

Produksjon:

['_c0', 'player', 'pos', 'age', 'team_id', 'g', 'gs', 'mp', 'fg', 'fga', 'fg_pct', 'fg3', ' fg3a ',' fg3_pct ',' fg2 ',' fg2a ',' fg2_pct ',' efg_pct ',' ft ',' fta ',' ft_pct ',' orb ',' drb ',' trb ',' ast ' , 'stl', 'blk', 'tov', 'pf', 'pts', 'yr']

Sortering av spillere (OrderBy) og toPandas:

Her sorterer vi spillere basert på poeng scoret i en sesong.

df.orderBy ('pts', ascending = False). begrense (10) .toPandas () [['yr', 'player', 'age', 'pts', 'fg3']]

Produksjon:

Bruke DSL og matplotlib:

Her analyserer vi gjennomsnittlig antall 3-punktsforsøk for hver sesong i en tidsfrist på 36 min [et intervall som tilsvarer et omtrentlig fullt NBA-spill med tilstrekkelig hvile]. Vi beregner denne beregningen ved hjelp av antall 3-punkts feltforsøk (fg3a) og spillte minutter (mp) og plotter deretter resultatet ved hjelp av matlplotlib .

fra pyspark.sql.functions importerer kol fga_py = df.groupBy ('yr') .agg ({'mp': 'sum', 'fg3a': 'sum'}). velg (col ('yr'), ( 36 * col ('sum (fg3a)') / col ('sum (mp)')). Alias ​​('fg3a_p36m')). OrderBy ('yr') fra matplotlib importerer pyplot som plt importerer sjøfødt som sns plt.style .bruk ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Year') _ = plt.title ('Player average 3-punktsforsøk (per 36 minutter) ') plt.annotate (' 3 peker introdusert ', xy = (1980, .5), xytext = (1981, 1.1), fontstørrelse = 9, pileknopper = dict (facecolor =' grå ', krympe = 0, linjebredde = 2)) plt.annotate (' NBA flyttet i 3-punktslinje ', xy = (1996, 2.4), xytext = (1991.5, 2.7), fontstørrelse = 9, pileknopper = dict (ansiktsfarge = 'grå', krympe = 0, linjebredde = 2)) plt.annotate ('NBA flyttet tilbake 3-punktslinje', xy = (1998, 2.), xytext = (1998.5, 2.4), fontstørrelse = 9, piltast = dict (ansiktsfarge = 'grå', krympe = 0, linjebredde = 2))

Produksjon:

hvordan du avslutter programmet i java

Lineær regresjon og VectorAssembler:

Vi kan tilpasse en lineær regresjonsmodell til denne kurven for å modellere antall skuddforsøk de neste 5 årene. Vi må transformere dataene våre ved hjelp av VectorAssembler-funksjonen til en enkelt kolonne. Dette er en krav for lineær regresjons-API i MLlib.

fra pyspark.ml.feature import VectorAssembler t = VectorAssembler (inputCols = ['yr'], outputCol = 'features') training = t.transform (fga_py) .withColumn ('yr', fga_py.yr) .withColumn ('label ', fga_py.fg3a_p36m) training.toPandas (). head ()

Produksjon:

Bygningsmodell:

Vi bygger deretter vårt lineære regresjonsmodellobjekt ved hjelp av våre transformerte data.

fra pyspark.ml.regression import LinearRegression lr = LinearRegression (maxIter = 10) model = lr.fit (training)

Bruke trent modell på datasettet:

Vi bruker vår trente modellobjektmodell på vårt originale treningssett sammen med 5 års fremtidige data

fra pyspark.sql.types importerer rad # gjelder modell for sesongen 1979-80 gjennom sesongen 2020-21 training_yrs = training.select ('yr'). rdd.map (lambda x: x [0]). collect () training_y = training.select ('fg3a_p36m'). rdd.map (lambda x: x [0]). collect () prediction_yrs = [2017, 2018, 2019, 2020, 2021] all_yrs = training_yrs + prediction_yrs # built testing DataFrame test_rdd = sc.parallelize (all_yrs) row = Row ('yr') & ampamplt all_years_features = t.transform (test_rdd.map (row) .toDF ()) # bruk lineær regresjonsmodell df_results = model.transform (all_years_features) .toPandas ()

Plotte den endelige spådommen:

Vi kan deretter plotte resultatene og lagre grafen på et spesifisert sted.

plt.plot (df_results.yr, df_results.prediction, linewidth = 2, linestyle = '-', color = '# 224df7', label = 'L2 Fit') plt.plot (training_yrs, training_y, color = '# f08080 ', label = Ingen) plt.xlabel (' Year ') plt.ylabel (' Antal forsøk ') plt.legend (loc = 4) _ = plt.title (' Spillerens gjennomsnittlige 3-punktsforsøk (per 36 minutter) ') plt.tight_layout () plt.savefig (' / home / edureka / Nedlastinger / Bilder / REGRESSION.png ')

Produksjon:

Og med denne grafen kommer vi til slutten av denne PySpark opplæringsbloggen.

Så dette er det, gutter!

Jeg håper dere fikk en ide om hva PySpark er, hvorfor Python er best egnet for Spark, RDD og et glimt av maskinlæring med Pyspark i denne PySpark Tutorial Blog. Gratulerer, du er ikke lenger en nybegynner i PySpark. Hvis du vil lære mer om PySpark og forstå de forskjellige tilfellene for industribruk, kan du ta en titt på vår Gnist med Python Blogg.

Nå som du har forstått Hva er 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).