PySpark Dataframe Tutorial - PySpark Programmering med Dataframes



I den här PySpark Dataframe-handledningsbloggen lär du dig om omvandlingar och åtgärder i Apache Spark med flera exempel.

Dataframes är ett motord i branschen idag. Människor brukar använda det med populära språk som används för dataanalys som Python, Scala och R.Plus, med det uppenbara behovet av att hantera komplexa analys- och munginguppgifter för Big Data, Python for Spark eller har blivit en av de mest eftertraktade färdigheterna i branschen idag.Så varför är det så att alla använder det så mycket? Låt oss förstå detta med vår PySpark Dataframe-handledning blogg. I den här bloggen kommer jag att behandla följande ämnen:





PySpark Dataframe Tutorial: Vad är Dataframes?

Dataframar hänvisar i allmänhet till en datastruktur som är tabellformad. Det representerar rader, som var och en består av ett antal observationer. Rader kan ha olika dataformat ( Heterogen ), medan en kolumn kan ha data av samma datatyp ( Homogen ). Dataramar innehåller vanligtvis vissa metadata utöver data till exempel kolumn- och radnamn.

Dataframe-Pyspark-Dataframe-Tutorial



Vi kan säga att dataframar inte är något annat än 2-dimensionell datastruktur, som liknar en SQL-tabell eller ett kalkylark. Låt oss nu gå vidare med denna PySpark Dataframe-handledning och förstå varför vi exakt behöver Pyspark Dataframe?

Varför behöver vi dataframar?

1.Bearbeta strukturerad och halvstrukturerad data



Dataframarär utformade för att bearbetastill stor insamling av strukturerade såväl som halvstrukturerade data . Observationer i Spark DataFrame är organiserade under namngivna kolumner, vilket hjälper Apache Spark att förstå schemat för en DataFrame. Detta hjälper Spark att optimera körplanen för dessa frågor. Det kan också hantera Petabytes av data.

2.S licensiering och tärning

Dataram API stöder vanligtvis detaljerade metoder för skivning och tärning uppgifterna. Det inkluderardriftns som att 'välja' rader, kolumner och celler efter namn eller nummer, filtrera bort rader osv. Statistiska data är vanligtvis mycket röriga och innehåller många saknade och felaktiga värden och intervallöverträdelser. Så ett kritiskt viktigt inslag i dataramar är den explicita hanteringen av saknade data.

3. datakällor

DataFrame har stöd för ett brett utbud av dataformat och källor, vi kommer att titta på detta senare i denna Pyspark Dataframe Tutorial-blogg. De kan ta in data från olika källor.

4. stöd för flera språk

Det har API-stöd för olika språk som Python, R, Scala, Java,vilket gör det lättare att använda av människor med olika programmeringsbakgrund.

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

Funktioner i Dataframes

  • Dataframar är Distribuerad i naturen, vilket gör den felaktig och mycket tillgänglig datastruktur.
  • Lata utvärderingar är en utvärderingsstrategi som håller utvärderingen av ett uttryck tills dess värde behövs. Det undviker upprepad utvärdering. Lata utvärderingar i Spark innebär att körningen inte startar förrän en åtgärd utlöses. I Spark kommer bilden av lat utvärdering när gnisttransformationer inträffar.
  • Dataframar är Oföränderlig i naturen. Med oföränderlig menar jag att det är ett objekt vars tillstånd kan inte ändras efter att den har skapats.Men vi kan omvandladessvärden genom att tillämpaen visstransformation, som i RDD.

PySpark Dataframe-källor

Dataframar i Pyspark kan skapas på flera sätt:

Data kan laddas in via en CSV, JSON, XML eller en parkettfil. Det kan också skapas med hjälp av en befintlig RDD och genom vilken annan databas som helst Bikupa eller Cassandra också. Det kan också ta in data från HDFS eller det lokala filsystemet.

Skapande av datafram

Låt oss gå vidare med denna PySpark Dataframe Tutorial-blogg och förstå hur man skapar Dataframes.

Vi skapar anställda och avdelningar.

från pyspark.sql import * Anställd = Rad ('förnamn', 'efternamn', 'e-post', 'lön') anställd1 = Anställd ('Basher', 'armbrust', 'bash@edureka.co', 100000) anställd2 = Anställd ('Daniel', 'meng', 'daniel@stanford.edu', 120000) anställd3 = Anställd ('Muriel', ingen, 'muriel@waterloo.edu', 140000) anställd4 = Anställd ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) medarbetare5 = Anställd (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) skriv ut (Anställd [0]) skriv ut (medarbetare3) avdelning1 = Rad (id = '123456', namn = 'HR') department2 = Rad (id = '789012', namn = 'OPS') department3 = Rad (id = '345678', namn = 'FN') department4 = Rad (id = ' 901234 ', namn =' DEV ')

Därefter skapar vi en instans DepartmentWithEmployees från anställd och avdelningar

departmentWithEmployees1 = Rad (avdelning = department1, anställda = [medarbetare1, anställd2, anställd5]) departmentWithEmployees2 = Rad (avdelning = avdelning2, anställda = [anställd3, anställd4]) avdelningMedarbetare3 = Rad (avdelning = avdelning3, anställda = [anställd1, anställd4, anställd3 ]) departmentWithEmployees4 = Rad (avdelning = department4, anställda = [medarbetare2, anställd3])

Låt oss skapa vår Dataframe från listan över rader

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

Pyspark Dataframes Exempel 1: FIFA World Cup Dataset

Här har vi tagit FIFA World Cup Players Dataset. Vi kommer att ladda dessa data som är i CSV-formatin i endataframe och sedan lär vi oss om de olika omvandlingar och åtgärder som kan utföras på denna dataram.

Läser data från CSV-fil

Låt oss ladda in data från en CSV-fil. Här ska vi använda spark.read.csv metod för att ladda in data i en dataframe fifa_df. Den faktiska metoden är spark.read.format [csv / json] .

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

Schema för Dataframe

Att ta en titt på schemat dvs. dataramens struktur använder vi tryckSchema metod. Detta ger oss de olika kolumnerna i vår dataram tillsammans med datatypen och de ogiltiga villkoren för den specifika kolumnen.

fifa_df.printSchema ()

Kolumnamn och antal (rader och kolumner)

När vi vill titta på namnen och räkna antalet rader och kolumner för en viss datafram använder vi följande metoder.

fifa_df.column // Kolumnnamn fifa_df.count () // Radantal len (fifa_df.column) // Column Count

37784 8

Beskriv en särskild kolumn

Om vi ​​vill titta på sammanfattningen av en viss kolumn i en Dataframe använder vi beskriver metod. Denna metod ger oss den statistiska sammanfattningen av den givna kolumnen, om den inte anges, ger den den statistiska sammanfattningen av dataramen.

vad är skillnaden mellan css och css3
fifa_df.describe ('Coach Name'). visa () fifa_df.describe ('Position'). show ()

Välja flera kolumner

Om vi ​​vill välja särskilda kolumner från dataramen använder vi Välj metod.

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

Välja distinkta flera kolumner

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

Filtrera data

För att filtrera data, enligt det angivna villkoret, använder vi filtrera kommando. Här filtrerar vi vår dataram baserat på villkoret att Match ID måste vara lika med 1096 och sedan beräknar vi hur många poster / rader som finns i den filtrerade utgången.

fifa_df.filter (fifa_df.MatchID == '1096'). visa () fifa_df.filter (fifa_df.MatchID == '1096'). räkna () // för att få räkningen

Filtrera data (flera parametrar)

Vi kan filtrera våra data baserat på flera villkor (AND eller OR)

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

Sortera data (OrderBy)

För att sortera data använder vi Sortera efter metod. Som standard sorteras den i stigande ordning, men vi kan också ändra den till fallande ordning.

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

PySpark Dataframes Exempel 2: Superheros Dataset

Laddar data

Här kommer vi att ladda data på samma sätt som vi gjorde tidigare.

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

Filtrera data

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

Gruppera data

Grupp av används för att gruppera dataramen baserat på den angivna kolumnen. Här grupperar vi dataramen baserat på kolumnen Race och sedan med räkna funktion, kan vi hitta räkningen av den specifika rasen.

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

Utföra SQL-frågor

Vi kan också skicka SQL-frågor direkt till valfri dataram, för det måste vi skapa en tabell från dataramen med registerTempTable metod och använd sedan sqlContext.sql () för att skicka SQL-frågorna.

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

sqlContext.sql ('välj distinkt (Eye_color) från superhero_table'). visa ()

sqlContext.sql ('välj distinkt (Eye_color) från superhero_table'). count ()

2. 3

sqlContext.sql ('välj max (vikt) från superhjälte_tabell'). visa ()

Och med detta kommer vi till slutet av denna PySpark Dataframe-handledning.

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

Jag hoppas att ni fick en uppfattning om vad PySpark Dataframe är, varför används det i branschen och dess funktioner i denna PySpark Dataframe Tutorial Blog. Grattis, du är inte längre en nybörjare i Dataframes. Om du vill lära dig mer om PySpark och förstå de olika branschanvändningsfallen, ta en titt på vår Gnista med Python och PySpark-handledning Blogg.