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:
- Hvad er Dataframes?
- Hvorfor har vi brug for Dataframes?
- Funktioner af Dataframes
- PySpark Dataframe-kilder
- Oprettelse af dataframe
- Pyspark Dataframes med FIFA World Cup & Superheroes Dataset
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.
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.