Pyspark - varians_stddev -funksjon

Pyspark - varians_stddev -funksjon
Etter å ha delt ut radene i Pyspark DataFrame, er det mulig å returnere variansen og standardavviket i hver partisjon. Ved å bruke noen samlede funksjoner i et partisjonsvindu, er det mulig å returnere variansen og standardavviket.

Først vil vi se 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 er to trinn for å dele opp radene i en pyspark dataaframe.

Trinn:

  1. Lag en Pyspark DataFrame som har noen lignende verdier i minst en kolonne.
  2. Partisjon dataene ved å bruke PartitionBy () -metoden som er tilgjengelig i vindusfunksjonen.

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 varians () vindusfunksjon

Variansen () i vindusfunksjonen brukes til å returnere variansen i hver partisjon. Det kan være mulig å returnere varians etter at Dataframe.

Syntaks:

DataFrame_obj.WithColumn ("Varians", varians (col ("kolonne").over (partisjon))

Parameter:

varians (col ("kolonne"))

Her tar variansen () -funksjonen kolonnens navn som parameter. Den returnerer variansen i denne kolonnen i hver partisjon.

Vi legger til resultatet i en kolonne som heter varians ved bruk av med Column () -funksjonen.

Eksempel 1:

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

# Importer vindusfunksjonen
Fra Pyspark.SQL.Vindusimportvindu
#import variansen og col fra pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importvarians, col
#Partition DataFrame basert på verdiene i Technology1 -kolonnen
partisjon = vindu.Partitionby ("Technology1")
Print ("---------- Partitioned DataFrame ----------")
#returner variansen i emne_id -kolonnen for hver partisjon
DataFrame_obj.withcolumn ("varians", varians (col ("emne_id")).over (partisjon)).forestilling()

Produksjon:

Forklaring:

Det totale antall partisjoner er 4.

Partisjon 1:

De .Net skjedde to ganger i den første partisjonen. Variansen til emnet_id -kolonnen er 0.0.

Partisjon 2:

Hadoop skjedde en gang i den andre partisjonen. Så variansen er null.

Partisjon 3:

Oracle skjedde fire ganger i tredje partisjon.

Variansen til emn_id -kolonnen er 401.0.

Partisjon 4:

PHP skjedde tre ganger i fjerde partisjon.

Variansen til emnet_id -kolonnen er 0.0.

Eksempel 2:

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

# Importer vindusfunksjonen
Fra Pyspark.SQL.Vindusimportvindu
#import variansen og col fra pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importvarians, col
#Partition DataFrame basert på verdiene i Technology1 -kolonnen
partisjon = vindu.Partitionby ("Technology1")
Print ("---------- Partitioned DataFrame ----------")
#returner variansen i alderskolonnen for hver partisjon
DataFrame_obj.WithColumn ("Varians", varians (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. Variansen i alderssøylen er 0.0.

Partisjon 2:

Hadoop skjedde en gang i den andre partisjonen. Så variansen er null.

Partisjon 3:

Oracle skjedde fire ganger i tredje partisjon.

Variansen i alderssøylen er 0.666.

Partisjon 4:

PHP skjedde tre ganger i fjerde partisjon.

Variansen i alderssøylen er 1.333.

Pyspark Stddev () vindusfunksjon

STDDEV () i vindusfunksjonen brukes til å returnere standardavviket i hver partisjon. Det kan være mulig å returnere standardavviket etter at Dataframe.

Syntaks:

DataFrame_obj.WithColumn ("Standardavvik", STDDEV (COL ("Kolonne")).over (partisjon))

Parameter:

STDDEV (COL ("Kolonne"))

Her tar stddev () kolonnenavnet som parameter. Den returnerer standardavviket i denne kolonnen i hver partisjon.

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

Eksempel 1:

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

# Importer vindusfunksjonen
Fra Pyspark.SQL.Vindusimportvindu
#import the Stddev og Col fra Pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importerer stddev, col
#Partition DataFrame basert på verdiene i Technology1 -kolonnen
partisjon = vindu.Partitionby ("Technology1")
Print ("---------- Partitioned DataFrame ----------")
#Return Satndard -avviket i Subject_id -kolonnen for hver partisjon
DataFrame_obj.WithColumn ("Standard Deviation", STDDEV (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. Standardavviket for emnet_id -kolonnen er 0.0.

Partisjon 2:

Hadoop skjedde en gang i den andre partisjonen. Så standardavviket er null.

Partisjon 3:

Oracle skjedde fire ganger i tredje partisjon.

Standardavviket for emnet_id -kolonnen er 20.024984.

Partisjon 4:

PHP skjedde tre ganger i fjerde partisjon.

Standardavviket for emnet_id -kolonnen er 0.0.

Eksempel 2:

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

# Importer vindusfunksjonen
Fra Pyspark.SQL.Vindusimportvindu
#import the Stddev og Col fra Pyspark.SQL.funksjoner
Fra Pyspark.SQL.Funksjoner importerer stddev, col
#Partition DataFrame basert på verdiene i Technology1 -kolonnen
partisjon = vindu.Partitionby ("Technology1")
Print ("---------- Partitioned DataFrame ----------")
#Return Satndard -avviket i alderskolonnen for hver partisjon
DataFrame_obj.WithColumn ("Standardavvik", STDDEV (COL ("Age")).over (partisjon)).forestilling()

Produksjon:

Forklaring:

Det totale antall partisjoner er 4.

Partisjon 1:

De .Net skjedde to ganger i den første partisjonen. Standardavviket for alderssøylen er 0.0.

Partisjon 2:

Hadoop skjedde en gang i den andre partisjonen. Så standardavviket er null.

Partisjon 3:

Oracle skjedde fire ganger i tredje partisjon.

Standardavviket for alderssøylen er 0.8164.

Partisjon 4:

PHP skjedde tre ganger i fjerde partisjon.

Standardavviket for alderssøylen er 1.1547.

Konklusjon

I denne pyspark -partisjoneringsopplæringen lærte vi hvordan vi kan returnere variansen i hvert partisjonert vindu ved å bruke varians () -funksjonen og standardavviket i hvert partisjonert vindu ved hjelp av STDDEV () -funksjonen. Vi la resultatet til det eksisterende DataFrame som en ny kolonne. Forsikre deg om at du importerer variansen og stddev fra pyspark.SQL.Funksjonsmodul.