Pyspark array_remove, dimensioni e retromarcia

Pyspark array_remove, dimensioni e retromarcia
In questo articolo su Pyspark dimostreremo le funzioni di elaborazione dell'array array_remove (), misurare() E inversione() per manipolare gli array.
  • Metodo array_remove ()
  • Metodo delle dimensioni ()
  • Metodo inverso ()

Per fare questi esempi dobbiamo prima introdurre il StructType (),StructField () E ArrayType () Metodi che vengono utilizzati per definire le colonne nel frame dati pyspark. Usando questi metodi, possiamo definire i nomi delle colonne e i tipi di dati delle colonne particolari.

StructType ()

Questo metodo viene utilizzato per definire la struttura del frame dati pyspark. Accetterà un elenco di tipi di dati insieme ai nomi delle colonne per il determinato dati di dati. Questo è noto come lo schema del telaio. Memorizza una collezione di campi

StructField ()

Questo metodo viene utilizzato all'interno del metodo structType () del Frame dati Pyspark. Accetterà i nomi delle colonne con il tipo di dati.

ArrayType ()

Questo metodo viene utilizzato per definire la struttura dell'array del frame dati pyspark. Accetterà un elenco di tipi di dati. Memorizza una collezione di campi. Possiamo posizionare i dati dei dati all'interno di ArrayType ().

In questo articolo, dobbiamo creare un frame dati con un array. Creiamo un frame dati con 2 colonne. La prima colonna è Student_Category che si riferisce al campo intero per archiviare gli ID studenteschi. La seconda colonna - Student_full_name viene utilizzata per archiviare i valori di stringa in un array creato usando ArrayType ().

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#e importanti tipi di strutture e altri tipi di dati
da pyspark.SQL.Tipi Import StrucTType, Strucfield, StringType, IntegerType, Floattype, ArrayType
da pyspark.SQL.Funzioni Import Array_Contains
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# considera un array con 5 elementi
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, [k ',' a ',' k ']), ( 4, ['k']), (3, ['b', 'p']]
#Define The StructType e Structfields
#per i dati di cui sopra
schema = structType ([structField ("Student_Category", IntegerType ()), StructField ("Student_full_name", ArrayType (StringType ()))))
#Crea dati e aggiungi lo schema al frame dati
df = spark_app.creatotaframe (my_array_data, schema = schema)
df.spettacolo()

Produzione:

array_remove ()

array_remove () viene utilizzato per rimuovere un valore particolare in un array su tutte le righe in una colonna di tipo array. Ci vogliono due parametri.

Sintassi:

array_remove (array_column, 'valore')

Parametri:

  1. array_column è la colonna array che ha array con valori
  2. Il valore è presente nell'array da rimuovere dai valori dell'array.

La funzione array_remove () viene utilizzata con il metodo Select () per eseguire l'azione.

Esempio:

In questo esemplare, rimuoveremo:

  1. 'A' dalla colonna Student_full_name
  2. 'P' dalla colonna Student_full_name
  3. 'K' dalla colonna Student_full_name
#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#e importanti tipi di strutture e altri tipi di dati
da pyspark.SQL.Tipi Import StrucTType, Strucfield, StringType, IntegerType, Floattype, ArrayType
da pyspark.SQL.Funzioni Import Array_Contains
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# considera un array con 5 elementi
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, [k ',' a ',' k ']), ( 4, ['k']), (3, ['b', 'p']]
#Define The StructType e Structfields
#per i dati di cui sopra
schema = structType ([structField ("Student_Category", IntegerType ()), StructField ("Student_full_name", ArrayType (StringType ()))))
#Crea dati e aggiungi lo schema al frame dati
df = spark_app.creatotaframe (my_array_data, schema = schema)
# Visualizza il frame dati rimuovendo un valore "un"
df.Select ("Student_full_name", Array_Remove ('Student_full_Name', 'A')).spettacolo()
# Visualizza il frame dati rimuovendo il valore "p"
df.Select ("Student_full_name", array_remove ('studente_full_name', 'p')).spettacolo()
# Visualizza il frame dati rimuovendo il valore "k"
df.Select ("Student_full_name", Array_Remove ('Student_full_Name', 'K')).spettacolo()

Produzione:

Nel primo output, possiamo vedere in seconde colonne:

I valori A, P e K vengono rimossi.

misurare()

la dimensione () viene utilizzata per restituire la lunghezza o il conteggio dei valori presenti in un array in ogni riga di un frame dati. Ci vuole un parametro.

Sintassi:

size ('array_column')

Parametro:

array_column si riferisce alla colonna del tipo di array

Esempio:

Ottieni il conteggio dei valori in un array nella colonna Student_Full_name.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#e importanti tipi di strutture e altri tipi di dati
da pyspark.SQL.Tipi Import StrucTType, Strucfield, StringType, IntegerType, Floattype, ArrayType
da pyspark.SQL.Funzioni Import Array_Contains
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# considera un array con 5 elementi
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, [k ',' a ',' k ']), ( 4, ['k']), (3, ['b', 'p']]
#Define The StructType e Structfields
#per i dati di cui sopra
schema = structType ([structField ("Student_Category", IntegerType ()), StructField ("Student_full_name", ArrayType (StringType ()))))
#Crea dati e aggiungi lo schema al frame dati
df = spark_app.creatotaframe (my_array_data, schema = schema)
# Ottieni la dimensione dei valori dell'array in tutte le righe nella colonna Student_Full_name
df.Select ("Student_full_name", size ('Student_full_name')).spettacolo()

Produzione:

Possiamo vedere che i valori totali presenti nell'array in ogni riga vengono restituiti.

inversione()

reverse () viene utilizzato per invertire l'array in ogni riga.

Sintassi:

reverse ('array_column')

Parametro:

array_column si riferisce alla colonna del tipo di array

Esempio:

Invertire l'array per tutte le righe nella colonna Student_Full_name.

#import il modulo pyspark
importare pyspark
#IMPORT SPARKSESSION per la creazione di una sessione
da pyspark.SQL Importazione di importazione
#e importanti tipi di strutture e altri tipi di dati
da pyspark.SQL.Tipi Import StrucTType, Strucfield, StringType, IntegerType, Floattype, ArrayType
da pyspark.SQL.Funzioni Import Array_Contains
#Crea un'app chiamata LinuxHint
Spark_app = SparkSession.costruttore.appname ('LinuxHint').getOrCreate ()
# considera un array con 5 elementi
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, [k ',' a ',' k ']), ( 4, ['k']), (3, ['b', 'p']]
#Define The StructType e Structfields
#per i dati di cui sopra
schema = structType ([structField ("Student_Category", IntegerType ()), StructField ("Student_full_name", ArrayType (StringType ()))))
#Crea dati e aggiungi lo schema al frame dati
df = spark_app.creatotaframe (my_array_data, schema = schema)
# Valori dell'array inverso nella colonna Student_Full_name
df.Select ("Student_full_name", reverse ('Student_full_name')).spettacolo()

Produzione:

Possiamo vedere che i valori dell'array in Student_full_name (2nd colonna) sono invertiti.

Conclusione

In questo articolo, abbiamo visto tre diverse funzioni applicate su colonne di tipo array pyspark. array_remove () viene utilizzato per rimuovere un valore particolare presente in un array in tutte le righe. La dimensione () viene utilizzata per ottenere il numero totale di valori presenti in un array e il retro () viene utilizzato per invertire l'array.