Pyspark array_remove, størrelse og omvendt

Pyspark array_remove, størrelse og omvendt
I denne artikkelen om Pyspark vil vi demonstrere matrisebehandlingsfunksjonene array_remove (), størrelse() og omvendt() For å manipulere matriser.
  • array_remove () metode
  • størrelse metode ()
  • Omvendt metode ()

For å gjøre disse eksemplene må vi først introdusere Struktureltype (),Structfield () og ArrayType () Metoder som brukes til å definere kolonnene i Pyspark DataFrame. Ved å bruke disse metodene, kan vi definere kolonnenavn og datatyper av de spesielle 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_remove ()

array_remove () brukes til å fjerne en bestemt verdi i en matrise på tvers av alle rader i en kolonne av array -typen. Det tar to parametere.

Syntaks:

array_remove (array_column, 'verdi')

Parametere:

  1. array_column er array -kolonnen som har matriser med verdier
  2. Verdien er til stede i matrisen som skal fjernes fra matriseverdiene.

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

Eksempel:

I dette eksemplet vil vi fjerne:

  1. 'A' fra Student_full_name kolonnen
  2. 'P' fra Student_full_name kolonnen
  3. 'K' fra 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 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)
# Vis DataFrame ved å fjerne 'en' verdi
df.velg ("student_full_name", array_remove ('student_full_name', 'a')).forestilling()
# Vis DataFrame ved å fjerne 'P' verdi
df.velg ("student_full_name", array_remove ('student_full_name', 'p')).forestilling()
# Vis DataFrame ved å fjerne 'K' verdi
df.velg ("student_full_name", array_remove ('student_full_name', 'k')).forestilling()

Produksjon:

I den første utgangen kan vi se i andre kolonner:

A, P- og K -verdiene fjernes.

størrelse()

størrelse () brukes til å returnere lengden eller tellingen av verdier som er til stede i en matrise i hver rad i en dataaframe. Det tar en parameter.

Syntaks:

størrelse ('array_column')

Parameter:

Array_column refererer til kolonnen Array Type

Eksempel:

Få antall verdier i en matrise 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 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)
# Få størrelsen på arrayverdier i alle rader i Student_full_name kolonne
df.velg ("student_full_name", størrelse ('student_full_name')).forestilling()

Produksjon:

Vi kan se at totale verdier som er til stede i matrisen i hver rad blir returnert.

omvendt()

Omvendt () brukes til å reversere matrise i hver rad.

Syntaks:

omvendt ('array_column')

Parameter:

Array_column refererer til kolonnen Array Type

Eksempel:

Omvendt matrisen for alle radene 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 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)
# Omvendt matriseverdier i Student_full_name kolonne
df.Velg ("Student_full_name", Reverse ('Student_full_name')).forestilling()

Produksjon:

Vi kan se at arrayverdier i student_full_name (2. kolonne) er reversert.

Konklusjon

I denne artikkelen så vi tre forskjellige funksjoner brukt på kolonner av Pyspark Array Type. array_remove () brukes til å fjerne en bestemt verdi som er til stede i en matrise i alle rader. Størrelse () brukes til å få det totale antallet verdier som er til stede i en matrise og omvendt () brukes til å reversere matrisen.