Pyspark partisjon en dataramme
Det er mulig å dele opp radene i DataFrame ved å bruke vindusfunksjonen. Det er tilgjengelig i Pyspark.SQL.vindu modul. Det vil være to trinn for å skille ut radene i en pyspark dataaframe.
Trinn
Syntaks
partisjon = vindu.Partitionby (“kolonne”)Vi kan bestille de partisjonerte dataene med den partisjonerte kolonnen eller en hvilken som helst annen kolonne. La oss opprette DataFrame.
Eksempel
Her vil vi lage en Pyspark DataFrame som har 5 kolonner: ['Subject_id', 'Name', 'Age', 'Technology1', 'Technology2'] med 10 rader.
Produksjon:
Pyspark sum () vindusfunksjon
Summen () i vindusfunksjonen brukes til å returnere den totale summen av verdier i hver partisjon. Så det er mulig å returnere en sum etter at Dataframe.
Syntaks
DataFrame_obj.WithColumn ("Sum", sum (Col ("kolonne")).over (partisjon))Parameter:
Sum (col ("kolonne"))Her, The sum() Funksjonen tar kolonnenavnet som parameter. Så den returnerer summen av verdier i denne kolonnen i hver partisjon. Vi legger til resultatet i en sumkolonne ved hjelp av WithColumn () funksjon.
Eksempel 1
Nå har vi en dataaframe (opprettet ovenfor). La oss partisjonere det basert på Technology1 -kolonnen og få den totale summen av alle verdier i emnet_id -kolonnen i hver partisjon.
Produksjon:
Forklaring
Totalt partisjoner: 4
Partisjon 1:
.Net skjedde to ganger i den første partisjonen. Og summen av emne_idverdiene er 46+46 = 92.
Partisjon 2:
Hadoop skjedde en gang i den andre partisjonen. Så summen er 12.
Partisjon 3:
Oracle skjedde fire ganger i tredje partisjon.
Og summen av emne_idverdier er 4+46+12+4 = 66.
Partisjon 4:
PHP skjedde tre ganger i fjerde partisjon.
Og summen av emne_idverdier er 4+4+4 = 12.
Eksempel 2
Nå har vi en dataaframe (opprettet ovenfor). La oss skille det ut basert på Technology1 -kolonnen og få den totale summen av alle verdier i alderskolonnen i hver partisjon.
Produksjon:
Forklaring
Totalt partisjoner: 4
Partisjon 1:
.Net skjedde to ganger i den første partisjonen. Og summen av aldersverdiene er 22+22 = 92.
Partisjon 2:
Hadoop skjedde en gang i den andre partisjonen. Så summen er 22.
Partisjon 3:
Oracle skjedde fire ganger i tredje partisjon.
Og summen av aldersverdiene er 21+22+22+23 = 88.
Partisjon 4:
PHP skjedde tre ganger i fjerde partisjon.
Og summen av aldersverdiene er 23+23+21 = 67.
Pyspark avg () vindusfunksjon
AVG () i vindusfunksjonen brukes til å returnere det totale gjennomsnittet av verdier i hver partisjon. Så det er mulig å returnere gjennomsnittet etter at Dataframe.
Syntaks
DataFrame_obj.WithColumn ("Gjennomsnitt", AVG (Col ("Column")).over (partisjon))Parameter:
AVG (Col ("kolonne"))Her, avg () Tar kolonnens navn som parameter. Så den returnerer gjennomsnittet av verdier i denne kolonnen i hver partisjon. Vi legger til resultatet i gjennomsnittskolonnen ved å bruke WithColumn () funksjon.
Eksempel 1
Nå har vi en dataaframe (opprettet ovenfor). La oss skille det ut basert på Technology1 -kolonnen og få det totale gjennomsnittet av alle verdier i emnet_id -kolonnen i hver partisjon.
Produksjon:
Forklaring
Totalt partisjoner: 4
Partisjon 1:
.Net skjedde to ganger i den første partisjonen. Og gjennomsnittet av emne_idverdier er (46+46)/2 = 46.0.
Partisjon 2:
Hadoop skjedde en gang i den andre partisjonen. Så gjennomsnittet er 12.0.
Partisjon 3:
Oracle skjedde fire ganger i tredje partisjon.
Og gjennomsnittet av emne_idverdier er (4+46+12+4)/4 = 16.5.
Partisjon 4:
PHP skjedde tre ganger i fjerde partisjon.
Og gjennomsnittet av emne_idverdier er (4+4+4)/3 = 4.0.
Eksempel 2
Nå har vi en dataaframe (opprettet ovenfor). La oss skille det ut basert på Technology1 -kolonnen og få det totale gjennomsnittet av alle verdier i alderskolonnen i hver partisjon.
Produksjon:
Forklaring
Totalt partisjoner: 4
Partisjon 1:
.Net skjedde to ganger i den første partisjonen. Og gjennomsnittsalderverdien er (22+22)/2 = 22.0.
Partisjon 2:
Hadoop skjedde en gang i den andre partisjonen. Så gjennomsnittet er 22.0.
Partisjon 3:
Oracle skjedde fire ganger i tredje partisjon.
Og gjennomsnittsalderen er (21+22+22+23)/4 = 22.0.
Partisjon 4:
PHP skjedde tre ganger i fjerde partisjon.
Og gjennomsnittsalderverdien er (23+23+21)/3 = 22.333.
Konklusjon
I denne pyspark -partisjoneringsopplæringen så vi hvordan vi skulle returnere summen av verdier i hvert partisjonert vindu ved å bruke sum() funksjon og gjennomsnittsverdiene i hvert partisjonert vindu ved hjelp av AVG () -funksjonen. Vi la resultatet til det eksisterende DataFrame som en ny kolonne. Det er også mulig å få gjennomsnittet likt avg () funksjon ved bruk av mener(). Tingene import betyr fra Pyspark.SQL.funksjoner modul og bare sørg for at du må importere sum og gjennomsnitt fra samme modul.