Fordelen med partisjon er å oppnå datakonsistens og gruppering. Etter å ha utført partisjonen, kan vi gi tallene til raden i hver partisjon ved hjelp av ROW_NUMBER () funksjon.
Det er mulig å skille ut radene i en dataaframe basert på verdiene i en bestemt kolonne. Alle de lignende verdiene er satt til hver partisjon. Anta at det er 3 typer lignende verdier, da er hver type en partisjon. Så det vil være tre partisjoner.
Row_number () vindusfunksjon
Row_number i Pyspark er en vindusfunksjon som brukes til å stille tallene fra 1 i hvert partisjonert vindu.
Det viktigste er at rad_number () ikke er tilgjengelig direkte. Vi må importere det fra Pyspark.SQL.funksjoner modul.
Syntaks for å importere modul:
Fra Pyspark.SQL.Funksjoner importerer radnummerEllers kan vi også gjøre det for å importere alle metodene fra denne modulen.
Fra Pyspark.SQL.Funksjoner importerer *Vi må følge følgende trinn for å utføre partisjonen og bruke radnummeret på de partisjonerte dataene.
Trinn:
Syntaks:
partisjon = vindu.Partitionby (“kolonne”).Orderby (“Kolonne”)Vi kan bestille de partisjonerte dataene med den partisjonerte kolonnen eller en hvilken som helst annen kolonne.
Syntaks:
DataFrame_obj.WithColumn ("Navn", Row_number ().over (partisjon))Her spesifiserer navnet radnavnet og DataFrame_OBJ er vår Pyspark DataFrame.
La oss implementere koden.
Eksempel 1:
Her oppretter vi en Pyspark DataFrame som har 5 kolonner - ['Subject_id', 'Name', 'Age', 'Technology1', 'Technology2'] med 10 rader og partisjon av radene basert på Teknologi1 Bruke vindusfunksjonen etter å ha fått radnumrene for partisjoner og legg til disse i kolonnen - Rad for teknologi1.
Importer pysparkProduksjon:
Forklaring:
Den første utgangen representerer de faktiske dataene som er til stede i DataFrame. I den andre utgangen gjøres partisjonen basert på Teknologi1 kolonne.
Det totale antall partisjoner er 4.
Partisjon 1:
De .Net skjedde to ganger i den første partisjonen. Så, rad_numrene er 1 og 2.
Partisjon 2:
Hadoop skjedde en gang i den andre partisjonen. Så, radnummeret er 1.
Partisjon 3:
Oracle skjedde fem ganger i tredje partisjon. Så, rad_numrene er 1, 2, 3, 4 og 5.
Partisjon 4:
PHP skjedde to ganger i den femte partisjonen. Så, rad_numrene er 1 og 2.
Eksempel 2:
For den samme dataaframet partisjonerer vi radene basert på Technology2 Bruke vindusfunksjonen etter å ha fått radnumrene for partisjoner og legg til disse i kolonnen - Rad for teknologi2.
Importer pysparkProduksjon:
Forklaring:
Den første utgangen representerer de faktiske dataene som er til stede i DataFrame. I den andre utgangen gjøres partisjonen basert på Technology2 kolonne.
Det totale antall partisjoner er 3.
Partisjon 1:
C# oppstod tre ganger i første partisjon. Så, rad_numrene er 1, 2 og 3.
Partisjon 2:
HTML skjedde to ganger i den andre partisjonen. Så, rad_numrene er 1 og 2.
Partisjon 3:
Testing skjedde fem ganger i tredje partisjon. Så, rad_numrene er 1, 2, 3, 4 og 5.
Konklusjon
Vi diskuterte hvordan du kan partisjonere radene i Pyspark DataFrame og få radnumrene i hver partisjon ved å bruke vinduet Row_number (). Row_number i Pyspark er en vindusfunksjon som brukes til å stille tallene fra 1 i hvert partisjonert vindu. Sørg for å bruke denne kommandoen mens du bruker denne funksjonen - Fra Pyspark.SQL.Funksjoner importerer radnummer.