Pyspark arra_min og array_max

Pyspark arra_min og array_max
I Python er Pyspark en Spark -modul som brukes til å gi en lignende type prosessering som Spark ved hjelp av DataFrame.

Det gir StructType () og structfield () -metodene som brukes til å definere kolonnene i Pyspark DataFrame.

Ved å bruke disse metodene kan vi definere kolonnens navn og datatyper av kolonnene.

Struktureltype ()

Denne metoden brukes til å definere strukturen til Pyspark DataFrame. Den vil godta en liste over datatyper sammen med kolonnenavn for den gitte DataFrame. Dette er kjent som skjemaet for Dataframe. Den lagrer en samling felt.

Structfield ()

Denne metoden brukes inne i strukturen () metoden for Pyspark DataFrame. Den aksepterer kolonnenavn med datatypen.

ArrayType ()

Denne metoden brukes til å definere arraystrukturen til Pyspark DataFrame. Den vil godta en liste over datatyper. Den lagrer en samling felt. Vi kan plassere datatyper inne i ArrayType ().

I denne artikkelen må vi lage en dataaframe med en matrise.

La oss lage en dataaframe med 2 kolonner. Første kolonne er student_category som refererer til heltallfeltet for å lagre student -ID -er. Den andre kolonnen - Student_full_name brukes til å lagre strengverdier i en matrise opprettet ved hjelp av ArrayType ().

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#og importerer strukturtyper og andre datatyper
Fra Pyspark.SQL.typer importerer struktur, strukturfelt, strengtype, integertype, floattype, arrayType
Fra Pyspark.SQL.Funksjoner importerer array_contains
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Vurder en matrise med 5 elementer
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#definer strukturen og strukturfeltene
#for dataene ovenfor
skjema = structType ([structField (“student_category”, integertype ()), structfield (“student_full_name”, arrayType (StringType ()))))
#skape dataaframe og legge til skjemaet til dataaframe
df = spark_app.CreateTataFrame (my_array_data, skjema = skjema)
df.forestilling()

Produksjon:

array_min ()

Nå får vi se hva array_min () gjør.

array_min () returnerer minimumsverdiene i hver rad i matrise -kolonnen.

Dette er mulig ved bruk av Select () -metoden. Inne i denne metoden kan vi bruke array_min () -funksjonen og returnere resultatet.

Syntaks:

Dataramme.velg (array_min (array_column))

Parametere:

array_column inneholder array -type verdier

Komme tilbake:

Den vil returnere minimumsverdier i en matrise over alle radene i en matrise -kolonne.

Eksempel:

I dette eksemplet vil vi returnere minimumsverdiene i en array -kolonne - Student_full_name

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#og importerer strukturtyper og andre datatyper
Fra Pyspark.SQL.typer importerer struktur, strukturfelt, strengtype, integertype, floattype, arrayType
Fra Pyspark.SQL.Funksjoner importerer *
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Vurder en matrise med 5 elementer
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#definer strukturen og strukturfeltene
#for dataene ovenfor
skjema = structType ([structField ("student_category", integertype ()), structfield ("student_full_name", arrayType (StringType ()))])
#skape dataaframe og legge til skjemaet til dataaframe
df = spark_app.CreateTataFrame (my_array_data, skjema = skjema)
# Få minimumsverdiene fra Student_full_name -kolonnen
df.velg ("student_full_name", array_min ('student_full_name')).forestilling()

Produksjon:

Vi kan se at i første rad, - Array inneholder: a, så a vil være minimum (sammenlignet basert på ASCII -verdier).

I andre rad - Array har B, L, B. - B er minimum

I tredje rad - Array har k, a, k. - A er minimum

I fjerde rad - Array har k-. K er minimum

I femte rad - Array har B, P. - B er minimum

array_max ()

Nå får vi se hva array_max () gjør.

Array_Max () Returnerer maksimale verdier i hver rad i array -typen kolonne.

Dette er mulig ved bruk av Select () -metoden. Inne i denne metoden kan vi bruke array_max () -funksjonen og returnere resultatet.

Syntaks:

Dataramme.Velg (Array_Max (Array_Column))

Parametere:

array_column inneholder array -type verdier

Komme tilbake:

Den vil returnere maksimale verdier i en matrise over alle radene i en matrise -kolonne.

Eksempel:

I dette eksemplet vil vi returnere maksimale verdier i en matrise -kolonne - student_full_name

#import Pyspark -modulen
Importer pyspark
#import SparkSession for å lage en økt
Fra Pyspark.SQL Import SparkSession
#og importerer strukturtyper og andre datatyper
Fra Pyspark.SQL.typer importerer struktur, strukturfelt, strengtype, integertype, floattype, arrayType
Fra Pyspark.SQL.Funksjoner importerer *
#Create en app som heter Linuxhint
Spark_app = SparkSession.bygger.AppName ('Linuxhint').getorCreate ()
# Vurder en matrise med 5 elementer
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#definer strukturen og strukturfeltene
#for dataene ovenfor
skjema = structType ([structField ("student_category", integertype ()), structfield ("student_full_name", arrayType (StringType ()))])
#skape dataaframe og legge til skjemaet til dataaframe
df = spark_app.CreateTataFrame (my_array_data, skjema = skjema)
# Få maksimale verdier fra Student_full_name Column
df.velg ("student_full_name", array_max ('student_full_name')).forestilling()

Produksjon:

Vi kan se at i første rad - Array inneholder: a, så a vil være det maksimale (sammenlignet basert på ASCII -verdier).

I andre rad - Array har B, L, B. - L er maksimalt

I tredje rad - Array har k, a, k. - K er maksimalt

I fjerde rad - Array har k-. K er maksimalt

I den femte raden - Array har B, P. - P er maksimalt.

Konklusjon

I denne opplæringen så vi array_min () og array_max () funksjoner. Array_min brukes til å returnere minimumsverdier i en kolonne av array -typen på tvers av alle rader. Array_Max brukes til å returnere maksimale verdier i en kolonne av array -typen over alle rader.