Pyspark shuffle & sort_array

Pyspark shuffle & sort_array
“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 kolonnenavn og datatyper av de spesielle kolonnene.”

La oss diskutere dem en etter en

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 ().

Så 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 og 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:

tilfeldig rekkefølge()

Shuffle () brukes til å stokke verdiene i en matrise for alle rader i array -typen -kolonnen i Pyspark DataFrame. Det vil returnere en ny matrise med blandede verdier. Det tar kolonnenavnet for array -type som en parameter. Vær oppmerksom på at det stokker tilfeldig.

Syntaks:

shuffle (array_column)

Parameter:

array_column er array -kolonnen som har matriser med verdier

Shuffle () -funksjon brukes med Select () -metoden for å gjøre handlingen.

Komme tilbake:

Det vil returnere matrisen med blandede verdier.

Eksempel

I dette eksemplet vil vi bruke Shuffle () -funksjonen for å blande verdiene som er til stede i Student_full_name -kolonnen.

#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)
#Shuffle The Array Values ​​in Student_Full_Name Column
df.velg ("student_full_name", shuffle ("student_full_name")).forestilling()

Produksjon:

Du kan se i den andre kolonnen at verdiene i matrisen ble blandet.

sort_array ()

sort_array () brukes til å sortere elementene i en matrise. Det tar to parametere; Den første parameteren er kolonnenavnet for array -type, og den andre parameteren er ASC som tar boolske verdier. Hvis det er sant, blir matrisen sortert i stigende rekkefølge. Hvis det er usant, sorteres matrisen i synkende rekkefølge. Som standard vil det sortere matrisen i stigende rekkefølge.

Syntaks:

sort_array (array_column, asc = true/usann)

Parametere:

  1. array_column er array -kolonnen som har matriser med verdier
  2. ASC tar boolske verdier for å sortere matrisen i stigende eller i synkende rekkefølge.

sort_array () -funksjon brukes med Select () -metoden for å gjøre handlingen.

Komme tilbake:

Hvis returnerer en sortert matrise for alle rader i en kolonne av array -typen.

Eksempel 1

I dette eksemplet vil vi sortere Student_full_name -kolonnen i stigende rekkefølge.

#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)
#Sort array -verdiene i Student_full_name kolonnen i stigende rekkefølge
df.velg ("student_full_name", sort_array ("student_full_name", asc = true)).forestilling()

Produksjon:

Så i den andre kolonnen kan du se at matrisen er sortert i stigende rekkefølge for alle rader.

Eksempel 2

I dette eksemplet vil vi sortere Student_full_name -kolonnen i synkende rekkefølge.

#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)
#Sort array -verdiene i Student_full_name kolonnen i synkende rekkefølge
df.velg ("student_full_name", sort_array ("student_full_name", asc = falsk)).forestilling()

Produksjon:

Så i den andre kolonnen kan du se at matrisen er sortert i synkende rekkefølge for alle rader.

Konklusjon

I denne Pyspark -artikkelen så vi to forskjellige matrisefunksjoner. Shuffle () brukes til å stokke verdiene i en array -type kolonne. Neste vi diskuterte sort_array () -metoden som brukes til å sortere matriser i en kolonne av array -typen. Hvis du vil sortere matrisen i synkende rekkefølge, kan du bruke ASC -parameteren sett til FALSE.