Pyspark - Min -funksjon

Pyspark - Min -funksjon
Etter å ha delt ut radene i Pyspark DataFrame, er det mulig å returnere minimums- og maksimumsverdiene i hver partisjon. Ved å bruke noen samlede funksjoner i et partisjonsvindu, er det mulig å returnere minimum/maksimum.

Først ser vi hvordan du kan partisjonere DataFrame i Pyspark.

Skillevegg

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:

  1. Lag en Pyspark DataFrame som har noen lignende verdier i minst en kolonne.
  2. Partisjon Dataene ved bruk av PartitionBy () -metode tilgjengelig Inwindow -funksjon.

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 lager vi en Pyspark DataFrame som har 5 kolonner - ['Subject_id', 'Name', 'Age', 'Technology1', 'Technology2'] med 10 rader.

Importer pyspark
Fra Pyspark.SQL Import SparkSession
Fra Pyspark.SQL.Funksjoner importerer *
Spark_app = SparkSession.bygger.AppName ('_').getorCreate ()
Studenter = [(4, 'Sravan', 23, 'PHP', 'Testing'),
(4, 'Sravan', 23, 'PHP', 'Testing'),
(46, 'Mounika', 22, '.Nett ',' html '),
(4, 'Deepika', 21, 'Oracle', 'html'),
(46, 'Mounika', 22, 'Oracle', 'Testing'),
(12, 'Chandrika', 22, 'Hadoop', 'C#'),
(12, 'Chandrika', 22, 'Oracle', 'Testing'),
(4, 'Sravan', 23, 'Oracle', 'C#'),
(4, 'Deepika', 21, 'PHP', 'C#'),
(46, 'Mounika', 22, '.Nett ',' testing ')
]
DataFrame_OBJ = Spark_App.CreateTataFrame (Studenter, ['Subject_id', 'Name', 'Age', 'Technology1', 'Technology2'])
Print ("---------- Faktisk DataFrame ----------")
DataFrame_obj.forestilling()

Produksjon:

Pyspark Min () vindusfunksjon

Min () i vindusfunksjonen brukes til å returnere minimumsverdien i hver partisjon. Det kan være mulig å returnere en minimumsverdi etter at Dataframe.

Syntaks:

DataFrame_obj.WithColumn ("Minimum", Min (Col ("Column")).over (partisjon))

Parameter:

Min (col ("kolonne"))

Her tar Min () -funksjonen kolonnenavnet som parameter. Den returnerer minimum av verdier i denne kolonnen i hver partisjon.

Vi legger til resultatet i en kolonne som heter minimum ved hjelp av with Column () -funksjonen.

Eksempel 1:

Nå har vi en DataFrame (opprettet tidligere). La oss skille det ut basert på Technology1 -kolonnen og få minimumsverdien fra emnet_id -kolonnen i hver partisjon.

# Importer vindusfunksjonen
Fra Pyspark.SQL.Vindusimportvindu
#import the Min og Col fra Pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importerer min, col
#Partition DataFrame basert på verdiene i Technology1 -kolonnen
partisjon = vindu.Partitionby ("Technology1")
Print ("---------- Partitioned DataFrame ----------")
#Return minimumsverdien i Subject_ID -kolonnen for hver partisjon
DataFrame_obj.WithColumn ("Minimum", Min (Col ("Subject_id")).over (partisjon)).forestilling()

Produksjon:

Forklaring:

Det totale antall partisjoner er 4.

Partisjon 1:

De .Net skjedde to ganger i den første partisjonen. Minimumsverdien i Subject_id -kolonnen er 46.

Partisjon 2:

Hadoop skjedde en gang i den andre partisjonen. Så minimumsverdien er 12.

Partisjon 3:

Oracle skjedde fire ganger i tredje partisjon.

Minimumsverdien i emn_id -kolonnen er 4.

Partisjon 4:

PHP skjedde tre ganger i fjerde partisjon.

Minimumsverdien i emn_id -kolonnen er 4.

Eksempel 2:

Nå har vi en DataFrame (opprettet tidligere). La oss partisjonere det basert på Technology1 -kolonnen og få minimumsverdien fra alderskolonnen i hver partisjon.

# Importer vindusfunksjonen
Fra Pyspark.SQL.Vindusimportvindu
#import the Min og Col fra Pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importerer min, col
#Partition DataFrame basert på verdiene i Technology1 -kolonnen
partisjon = vindu.Partitionby ("Technology1")
Print ("---------- Partitioned DataFrame ----------")
#Return minimumsverdien i alderskolonnen for hver partisjon
DataFrame_obj.WithColumn ("Minimum", Min (Col ("Alder")).over (partisjon)).forestilling()

Produksjon:

Forklaring:

Det totale antall partisjoner er 4.

Partisjon 1:

De .Net skjedde to ganger i den første partisjonen. Minimumsverdien i alderssøylen er 22.

Partisjon 2:

Hadoop skjedde en gang i den andre partisjonen. Minimumsverdien er 22.

Partisjon 3:

Oracle skjedde fire ganger i tredje partisjon.

Minimumsverdien i alderskolonnen er 21.

Partisjon 4:

PHP skjedde tre ganger i fjerde partisjon.

Minimumsverdien i alderskolonnen er 21.

Pyspark max () vindusfunksjon

Maks () i vindusfunksjonen brukes til å returnere maksimalverdien i hver partisjon. Det kan være mulig å returnere en maksimal verdi etter at Dataframe.

Syntaks:

DataFrame_obj.WithColumn ("Maksimum", Max (Col ("Column")).over (partisjon))

Parameter:

Max (col ("kolonne"))

Her tar Max () -funksjonen kolonnenavnet som parameter. Den returnerer maksimum av verdier i denne kolonnen i hver partisjon.

Vi legger til resultatet i en kolonne som heter maksimum ved hjelp av med column () -funksjonen.

Eksempel 1:

Nå har vi en DataFrame (opprettet tidligere). La oss partisjonere det basert på Technology1 -kolonnen og få maksimal verdi fra emne_id -kolonnen i hver partisjon.

# Importer vindusfunksjonen
Fra Pyspark.SQL.Vindusimportvindu
#import maks og col fra pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importerer maks, col
#Partition DataFrame basert på verdiene i Technology1 -kolonnen
partisjon = vindu.Partitionby ("Technology1")
Print ("---------- Partitioned DataFrame ----------")
#Return maksimal verdi i emne_id -kolonnen for hver partisjon
DataFrame_obj.WithColumn ("Maksimum", Max (Col ("Subject_id")).over (partisjon)).forestilling()

Produksjon:

Forklaring:

Det totale antall partisjoner er 4.

Partisjon 1:

De .Net skjedde to ganger i den første partisjonen. Maksimal verdi i emnet_id -kolonnen er 46.

Partisjon 2:

Hadoop skjedde en gang i den andre partisjonen. Så maksimalverdien er 12.

Partisjon 3:

Oracle skjedde fire ganger i tredje partisjon.

Maksimal verdi i emnet_id -kolonnen er 46.

Partisjon 4:

PHP skjedde tre ganger i fjerde partisjon.

Maksimal verdi i emnet_id -kolonnen er 4.

Eksempel 2:

Nå har vi en DataFrame (opprettet tidligere). La oss partisjonere det basert på Technology1 -kolonnen og få maksimal verdi fra alderskolonnen i hver partisjon.

# Importer vindusfunksjonen
Fra Pyspark.SQL.Vindusimportvindu
#import maks og col fra pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importerer maks, col
#Partition DataFrame basert på verdiene i Technology1 -kolonnen
partisjon = vindu.Partitionby ("Technology1")
Print ("---------- Partitioned DataFrame ----------")
#Return Maksimal verdi i alderskolonnen for hver partisjon
DataFrame_obj.WithColumn ("Maksimum", Max (Col ("Alder")).over (partisjon)).forestilling()

Produksjon:

Forklaring:

Det totale antall partisjoner er 4.

Partisjon 1:

De .Net skjedde to ganger i den første partisjonen. Maksimal verdi i alderskolonnen er 22.

Partisjon 2:

Hadoop skjedde en gang i den andre partisjonen. Så maksimumsverdien er 22.

Partisjon 3:

Oracle skjedde fire ganger i tredje partisjon.

Maksimal verdi i alderskolonnen er 23.

Partisjon 4:

PHP skjedde tre ganger i fjerde partisjon.

Maksimal verdi i alderskolonnen er 23.

Konklusjon

I denne pyspark -partisjoneringsopplæringen lærte vi hvordan vi kan returnere minimumsverdiene i hvert partisjonert vindu ved å bruke Min () -funksjonen og maksimalverdiene i hvert partisjonert vindu ved å bruke max () -funksjonen. Vi la resultatet til det eksisterende DataFrame som en ny kolonne. Forsikre deg om at du må importere min og maks fra pyspark.SQL.Funksjonsmodul.