PySpark Dataframe Tutorial - PySpark Programming with Dataframes

I denne opplæringsbloggen for PySpark Dataframe vil du lære om transformasjoner og handlinger i Apache Spark med flere eksempler.

Dataframes er et moteord i industrien i dag. Folk pleier å bruke den med populære språk som brukes til dataanalyse som Python, Scala og R.I tillegg med det tydelige behovet for å håndtere komplekse analyse- og mungingoppgaver for Big Data, Python for Spark eller har blitt en av de mest etterspurte ferdighetene i bransjen i dag.Så hvorfor bruker alle det så mye? La oss forstå dette med vår PySpark Dataframe Tutorial blogg. I denne bloggen vil jeg dekke følgende emner:



PySpark Dataframe Tutorial: Hva er Dataframes?

Datarammer refererer vanligvis til en datastruktur, som er tabellformet. Den representerer rader, som hver består av en rekke observasjoner. Rader kan ha en rekke dataformater ( Heterogen ), mens en kolonne kan ha data av samme datatype ( Homogen ). Datarammer inneholder vanligvis noen metadata i tillegg til data, for eksempel kolonne- og radnavn.

Dataframe-Pyspark-Dataframe-Tutorial

Vi kan si at datarammer ikke er noe, men 2-dimensjonal datastruktur, som ligner på en SQL-tabell eller et regneark. La oss nå gå videre med denne PySpark Dataframe-opplæringen og forstå hvorfor vi akkurat trenger Pyspark Dataframe?

Hvorfor trenger vi datarammer?

1.Prosessering av strukturerte og semistrukturerte data

Datarammerer designet for å behandletil stor samling av strukturerte så vel som semistrukturerte data . Observasjoner i Spark DataFrame er organisert under navngitte kolonner, noe som hjelper Apache Spark til å forstå skjemaet til en DataFrame. Dette hjelper Spark med å optimalisere utførelsesplanen for disse spørsmålene. Den kan også takle Petabyte av data.

2.S lisensiering og terning

Dataramme API støtter vanligvis forseggjorte metoder for skjæring-og-terning dataen. Det inkludereroperasjonns som å 'velge' rader, kolonner og celler etter navn eller antall, filtrere ut rader osv. Statistiske data er vanligvis veldig rotete og inneholder mange manglende og gale verdier og brudd på området. Så et kritisk viktig trekk ved datarammer er den eksplisitte håndteringen av manglende data.

3. datakilder

DataFrame har støtte for et bredt spekter av dataformat og kilder, vi ser nærmere på dette senere i denne Pyspark Dataframe Tutorial-bloggen. De kan ta inn data fra forskjellige kilder.

4. støtte for flere språk

Den har API-støtte for forskjellige språk som Python, R, Scala, Java,noe som gjør det enklere å bli brukt av personer med forskjellig programmeringsbakgrunn.

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

Funksjoner av Dataframes

  • Datarammer er Distribuert i Nature, noe som gjør den til feiltolerant og svært tilgjengelig datastruktur.
  • Lat evaluering er en evalueringsstrategi som inneholder evalueringen av et uttrykk til verdien er nødvendig. Det unngår gjentatt evaluering. Lat evaluering i Spark betyr at utførelsen ikke starter før en handling er utløst. I Spark kommer bildet av lat evaluering når gnisttransformasjoner oppstår.
  • Datarammer er Uforanderlig i naturen. Med uforanderlig mener jeg at det er et objekt hvis tilstand kan ikke endres etter at den er opprettet.Men vi kan transformeredet erverdier ved å brukeen visstransformasjon, som i RDD.

PySpark Dataframe Kilder

Datarammer i Pyspark kan opprettes på flere måter:

Data kan lastes inn gjennom en CSV, JSON, XML eller en parkettfil. Det kan også opprettes ved hjelp av en eksisterende RDD og gjennom en hvilken som helst annen database, som Hive eller Cassandra også. Det kan også ta inn data fra HDFS eller det lokale filsystemet.

Dataframe Creation

La oss gå videre med denne PySpark Dataframe Tutorial-bloggen og forstå hvordan du lager Dataframes.

Vi oppretter forekomster av ansatte og avdelinger.

fra pyspark.sql import * Ansatt = Rad ('fornavn', 'etternavn', 'e-post', 'lønn') ansatt1 = Ansatt ('Basher', 'armbrust', 'bash@edureka.co', 100000) medarbeider2 = Ansatt ('Daniel', 'meng', 'daniel@stanford.edu', 120000) ansatt3 = Ansatt ('Muriel', Ingen, 'muriel@waterloo.edu', 140000) ansatt4 = Ansatt ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) ansatte5 = Ansatt (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) utskrift (Medarbeider [0]) utskrift (ansatt3) avdeling1 = Rad (id = '123456', name = 'HR') department2 = Row (id = '789012', name = 'OPS') department3 = Row (id = '345678', name = 'FN') department4 = Row (id = ' 901234 ', name =' DEV ')

Deretter oppretter vi en DepartmentWithEmployees-forekomst fra ansatt og avdeling

departmentWithEmployees1 = Rad (avdeling = department1, ansatte = [ansatt1, ansatt2, ansatt5]) avdelingMedarbeidere2 = Rad (avdeling = avdeling2, ansatte = [ansatt3, ansatt4]) avdelingMedarbeidere3 = Rad (avdeling = avdeling3, ansatte = [ansatt1, ansatt4, ansatt3 ]) departmentWithEmployees4 = Rad (avdeling = department4, ansatte = [ansatt2, ansatt3])

La oss lage vår Dataframe fra listen over rader

departmentWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departmentWithEmployees_Seq) display (dframe) dframe.show ()

Pyspark Dataframes Eksempel 1: FIFA World Cup Dataset

Her har vi tatt FIFA World Cup Players Dataset. Vi skal laste inn disse dataene som er i CSV-formatinn i endataramme, og så lærer vi om de forskjellige transformasjonene og handlingene som kan utføres på denne datarammen.

Lese data fra CSV-fil

La oss laste inn dataene fra en CSV-fil. Her skal vi bruke spark.read.csv metode for å laste inn dataene i en dataramme fifa_df. Den faktiske metoden er spark.read.format [csv / json] .

fifa_df = spark.read.csv ('path-of-file / fifa_players.csv', inferSchema = True, header = True) fifa_df.show ()

Skjema for dataframe

Å ta en titt på skjemaet dvs. strukturen til datarammen, bruker vi utskriftsskjema metode. Dette vil gi oss de forskjellige kolonnene i datarammen vår sammen med datatypen og de nullbare forholdene for den aktuelle kolonnen.

fifa_df.printSchema ()

Kolonnenavn og antall (rader og kolonner)

Når vi ønsker å se på navnene og telle antallet rader og kolonner for en bestemt dataramme, bruker vi følgende metoder.

fifa_df.columns // Column Navn fifa_df.count () // Radtelling len (fifa_df.column) // Column Count

37784 8

Beskrive en bestemt kolonne

Hvis vi vil se på sammendraget av en bestemt kolonne i en Dataframe, bruker vi beskriver metode. Denne metoden gir oss den statistiske oppsummeringen av den gitte kolonnen, hvis den ikke er spesifisert, gir den den statistiske oppsummeringen av datarammen.

ruby on rails nettopplæring
fifa_df.describe ('Coach Name'). vis () fifa_df.describe ('Position'). show ()

Velge flere kolonner

Hvis vi vil velge bestemte kolonner fra datarammen, bruker vi å velge metode.

fifa_df.select ('Player Name', 'Coach Name'). show ()

Velge distinkte flere kolonner

fifa_df.select ('Player Name', 'Coach Name'). distinkt (). show ()

Filtrering av data

For å filtrere dataene, i henhold til den spesifiserte tilstanden, bruker vi filter kommando. Her filtrerer vi datarammen vår basert på vilkåret at Match ID må være lik 1096, og da beregner vi hvor mange poster / rader det er i den filtrerte utgangen.

fifa_df.filter (fifa_df.MatchID == '1096'). vis () fifa_df.filter (fifa_df.MatchID == '1096'). count () // for å få tellingen

Filtrering av data (flere parametere)

Vi kan filtrere dataene våre basert på flere forhold (AND eller OR)

fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40' ')). vis ()

Sortering av data (OrderBy)

For å sortere dataene bruker vi Rekkefølge etter metode. Som standard sorterer den i stigende rekkefølge, men vi kan også endre den til synkende rekkefølge.

fifa_df.orderBy (fifa_df.MatchID) .show ()

PySpark-datarammer Eksempel 2: Superheros-datasett

Laster inn dataene

Her vil vi laste inn dataene på samme måte som vi gjorde tidligere.

Superhero_df = spark.read.csv ('path-of file / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)

Filtrering av dataene

Superhero_df.filter (Superhero_df.Gender == 'Male'). Count () // Male Heros Count Superhero_df.filter (Superhero_df.Gender == 'Female'). Count () // Female Heros Count

Gruppere dataene

Gruppe av brukes til å gruppere datarammen basert på den spesifiserte kolonnen. Her grupperer vi datarammen basert på kolonnen Race og deretter med telle funksjon, kan vi finne antall løp.

Race_df = Superhero_df.groupby ('Race'). Count () .show ()

Utføre SQL-spørringer

Vi kan også sende SQL-spørsmål direkte til hvilken som helst dataramme, for det må vi lage en tabell fra datarammen ved hjelp av registerTempTable metoden og bruk deretter sqlContext.sql () for å overføre SQL-spørringene.

Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('select * from superhero_table'). Vis ()

sqlContext.sql ('velg distinkt (Eye_color) fra superhero_table'). vis ()

sqlContext.sql ('velg distinkt (Eye_color) fra superhero_table'). count ()

2. 3

sqlContext.sql ('velg maks (vekt) fra superhero_table'). vis ()

Og med dette kommer vi til en slutt på denne PySpark Dataframe Tutorial.

Så dette er det, gutter!

Jeg håper dere fikk en ide om hva PySpark Dataframe er, hvorfor brukes det i bransjen og dets funksjoner i denne PySpark Dataframe Tutorial Blog. Gratulerer, du er ikke lenger en nybegynner for Dataframes. Hvis du vil lære mer om PySpark og forstå de forskjellige bransjeanvendelsessakene, kan du ta en titt på vår Gnist med Python og PySpark Tutorial Blogg.