PySpark Dataframe Tutorial - PySpark Programmering med Dataframes



I denne PySpark Dataframe tutorial blog lærer du om transformationer og handlinger i Apache Spark med flere eksempler.

Dataframes er et buzzword i branchen i dag. Folk har en tendens til at bruge det med populære sprog, der bruges til dataanalyse som Python, Scala og R.Plus med det åbenlyse behov for håndtering af komplekse analyser og mungingopgaver til Big Data, Python for Spark eller er blevet en af ​​de mest efterspurgte færdigheder i branchen i dag.Så hvorfor bruger alle det så meget? Lad os forstå dette med vores PySpark Dataframe-vejledning blog. I denne blog vil jeg dække følgende emner:





PySpark Dataframe-tutorial: Hvad er Dataframes?

Dataframes refererer generelt til en datastruktur, som har tabelform. Det repræsenterer rækker, som hver består af et antal observationer. Rækker kan have en række dataformater ( Heterogen ), hvorimod en kolonne kan have data af samme datatype ( Homogen ). Datarammer indeholder normalt nogle metadata ud over data for eksempel kolonne- og rækkenavne.

Dataframe-Pyspark-Dataframe-Tutorial



Vi kan sige, at datarammer ikke er andet end 2-dimensionel datastruktur, der ligner en SQL-tabel eller et regneark. Lad os gå videre med denne PySpark Dataframe-tutorial og forstå, hvorfor vi netop har brug for Pyspark Dataframe?

Hvorfor har vi brug for dataframes?

1. behandling af strukturerede og semistrukturerede data



Dataframeser designet til at behandletil stor indsamling af strukturerede såvel som semistrukturerede data . Observationer i Spark DataFrame er organiseret under navngivne kolonner, hvilket hjælper Apache Spark med at forstå skemaet for en DataFrame. Dette hjælper Spark med at optimere udførelsesplanen for disse forespørgsler. Det kan også håndtere Petabyte af data.

2.S licensering og terning

Dataramme API'er understøtter normalt udførlige metoder til udskæring og skæring dataene. Det omfatteroperationns såsom 'markering' af rækker, kolonner og celler efter navn eller nummer, filtrering af rækker osv. Statistiske data er normalt meget rodet og indeholder masser af manglende og forkerte værdier og overtrædelser af området. Så et kritisk vigtigt træk ved datarammer er den eksplicitte styring af manglende data.

3. datakilder

DataFrame har en understøttelse af en bred vifte af dataformat og kilder, vi vil se nærmere på dette senere i denne Pyspark Dataframe Tutorial-blog. De kan tage data fra forskellige kilder.

4. understøttelse af flere sprog

Det har API-understøttelse til forskellige sprog som Python, R, Scala, Java,hvilket gør det nemmere at blive brugt af mennesker med forskellig programmeringsbaggrund.

Abonner på vores youtube-kanal for at få nye opdateringer ..!

Funktioner af Dataframes

  • Datarammer er Distribueret i Nature, hvilket gør det til fejltolerant og meget tilgængelig datastruktur.
  • Lazy evaluering er en evalueringsstrategi, der indeholder evalueringen af ​​et udtryk, indtil dets værdi er nødvendig. Det undgår gentagen evaluering. Lazy evaluering i Spark betyder, at udførelsen ikke starter, før en handling udløses. I Spark kommer billedet af doven evaluering, når der opstår gnisttransformationer.
  • Datarammer er Uforanderlig i naturen. Med uforanderlig mener jeg, at det er et objekt, hvis tilstand kan ikke ændres efter det er oprettet.Men vi kan transformeredensværdier ved at anvendeet bestemttransformation, som i FUD'er.

PySpark Dataframe-kilder

Dataframes i Pyspark kan oprettes på flere måder:

Data kan indlæses gennem en CSV, JSON, XML eller en parketfil. Det kan også oprettes ved hjælp af en eksisterende RDD og gennem enhver anden database, f.eks Hive eller Cassandra såvel. Det kan også optage data fra HDFS eller det lokale filsystem.

Oprettelse af dataframe

Lad os gå videre med denne PySpark Dataframe Tutorial-blog og forstå, hvordan man opretter Dataframes.

Vi opretter medarbejder- og afdelingforekomster.

fra pyspark.sql import * Medarbejder = Række ('fornavn', 'efternavn', 'e-mail', 'løn') medarbejder1 = Medarbejder ('Basher', 'armbrust', 'bash@edureka.co', 100000) medarbejder2 = Medarbejder ('Daniel', 'meng', 'daniel@stanford.edu', 120000) medarbejder3 = Medarbejder ('Muriel', Ingen, 'muriel@waterloo.edu', 140000) medarbejder4 = Medarbejder ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) medarbejder5 = Medarbejder (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) print (Medarbejder [0]) print (medarbejder3) afdeling1 = Række (id = '123456', name = 'HR') department2 = Row (id = '789012', name = 'OPS') department3 = Row (id = '345678', name = 'FN') department4 = Row (id = ' 901234 ', name =' DEV ')

Dernæst opretter vi en DepartmentWithEmployees-instans fra medarbejder og afdelinger

departmentWithEmployees1 = række (afdeling = department1, medarbejdere = [medarbejder1, medarbejder2, medarbejder5]) departmentWithEmployees2 = række (afdeling = afdeling2, medarbejdere = [medarbejder3, medarbejder4]) afdelingMedarbejder3 = række (afdeling = afdeling3, medarbejdere = [medarbejder1, medarbejder4, medarbejder3 ]) departmentWithEmployees4 = Række (afdeling = department4, medarbejdere = [medarbejder2, medarbejder3])

Lad os oprette vores Dataframe fra listen over rækker

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

Pyspark Dataframes Eksempel 1: FIFA World Cup Dataset

Her har vi taget FIFA World Cup Players Dataset. Vi skal indlæse disse data i CSV-formatind i endataframe, og så lærer vi om de forskellige transformationer og handlinger, der kan udføres på denne dataframe.

Læsning af data fra CSV-fil

Lad os indlæse dataene fra en CSV-fil. Her skal vi bruge spark.read.csv metode til at indlæse dataene i en dataramme fifa_df. Den egentlige metode er spark.read.format [csv / json] .

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

Skema for Dataframe

At se på skemaet dvs. strukturen af ​​dataframmen bruger vi printSkema metode. Dette giver os de forskellige kolonner i vores dataramme sammen med datatypen og de ugyldige betingelser for den pågældende kolonne.

fifa_df.printSchema ()

Kolonnenavne og antal (rækker og kolonner)

Når vi vil se på navnene og antallet af rækker og kolonner for en bestemt Dataframe, bruger vi følgende metoder.

fifa_df.columns // Column Navne fifa_df.count () // Row Count len ​​(fifa_df.column) // Column Count

37784 8

Beskriver en særlig søjle

Hvis vi vil se på resuméet af en bestemt kolonne i en Dataframe, bruger vi beskriver metode. Denne metode giver os den statistiske oversigt over den givne kolonne, hvis den ikke er specificeret, giver den den statistiske oversigt over datarammen.

hvad er en markørgrænseflade i java
fifa_df.describe ('Coach Name'). vis () fifa_df.describe ('Position'). show ()

Valg af flere kolonner

Hvis vi vil vælge bestemte kolonner fra datarammen, bruger vi Vælg metode.

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

Valg af distinkte flere kolonner

fifa_df.select ('Player Name', 'Coach Name'). særskilt (). show ()

Filtrering af data

For at filtrere dataene i henhold til den angivne tilstand bruger vi filter kommando. Her filtrerer vi vores dataramme baseret på den betingelse, at Match ID skal være lig med 1096, og derefter beregner vi, hvor mange poster / rækker der er i det filtrerede output.

fifa_df.filter (fifa_df.MatchID == '1096'). vis () fifa_df.filter (fifa_df.MatchID == '1096'). count () // for at få optællingen

Filtrering af data (flere parametre)

Vi kan filtrere vores data baseret på flere forhold (AND eller OR)

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

Sortering af data (OrderBy)

For at sortere data bruger vi Bestil af metode. Som standard sorteres den i stigende rækkefølge, men vi kan også ændre den til faldende rækkefølge.

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

PySpark-datarammer Eksempel 2: Superheros-datasæt

Indlæser data

Her indlæser vi dataene på samme måde som vi gjorde tidligere.

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

Filtrering af data

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

Gruppering af data

GroupBy bruges til at gruppere datarammen baseret på den angivne kolonne. Her grupperer vi dataframmen baseret på kolonnen Race og derefter med tælle funktion, kan vi finde antallet af det bestemte løb.

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

Udførelse af SQL-forespørgsler

Vi kan også videregive SQL-forespørgsler direkte til en hvilken som helst dataramme, for at vi skal oprette en tabel fra datarammen ved hjælp af registerTempTable metode og derefter bruge sqlContext.sql () for at bestå SQL-forespørgsler.

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

sqlContext.sql ('vælg særskilt (Eye_color) fra superhero_table'). vis ()

sqlContext.sql ('vælg særskilt (Eye_color) fra superhero_table'). count ()

2. 3

sqlContext.sql ('vælg max (Vægt) fra superhelt_tabel'). vis ()

Og med dette slutter vi denne PySpark Dataframe-tutorial.

Så dette er det, gutter!

Jeg håber, I har fået en idé om, hvad PySpark Dataframe er, hvorfor bruges det i branchen og dets funktioner i denne PySpark Dataframe Tutorial Blog. Tillykke, du er ikke længere nybegynder til Dataframes. Hvis du vil lære mere om PySpark og forstå de forskellige sager om brug af industri, skal du kigge på vores Gnist med Python og PySpark vejledning Blog.