Pyspark array_remove, taille et inverse

Pyspark array_remove, taille et inverse
Dans cet article sur Pyspark, nous démontrerons les fonctions de traitement du tableau array_remove (), taille() et inverse() Pour manipuler les tableaux.
  • Méthode array_remove ()
  • Méthode de taille ()
  • Méthode inversée ()

Afin de faire ces exemples, nous devons d'abord introduire le StructType (),Structfield () et ArrayType () Méthodes qui sont utilisées pour définir les colonnes dans le Pyspark DataFrame. En utilisant ces méthodes, nous pouvons définir les noms de colonne et les types de données des colonnes particulières.

StructType ()

Cette méthode est utilisée pour définir la structure du Pyspark DataFrame. Il acceptera une liste de types de données ainsi que des noms de colonne pour le DataFrame donné. Ceci est connu comme le schéma du dataframe. Il stocke une collection de champs

Structfield ()

Cette méthode est utilisée à l'intérieur de la méthode StructType () du Pyspark DataFrame. Il acceptera les noms de colonne avec le type de données.

ArrayType ()

Cette méthode est utilisée pour définir la structure du tableau du Pyspark DataFrame. Il acceptera une liste de types de données. Il stocke une collection de champs. Nous pouvons placer des données de données dans ArrayType ().

Dans cet article, nous devons créer un dataframe avec un tableau. Créons un dataframe avec 2 colonnes. La première colonne est Student_category qui fait référence au champ entier pour stocker les identifiants étudiants. La deuxième colonne - Student_full_name est utilisée pour stocker les valeurs de chaîne dans un tableau créé à l'aide d'ArrayType ().

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# et importent des types de structures et d'autres types de données
de Pyspark.SQL.Types Import StructType, StructField, StringType, IntegerType, FloatType, ArrayType
de Pyspark.SQL.Fonctions Importer Array_Contains
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Envisagez un tableau avec 5 éléments
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p'])]]
#Define le structure et les structures
# pour les données ci-dessus
schéma = structType ([structField («Student_Category», IntegerType ()), StructField («Student_full_name», ArrayType (StringType ()))])
# réintégrer le dataframe et ajouter un schéma au dataframe
df = spark_app.CreateDataFrame (my_array_data, schéma = schéma)
df.montrer()

Sortir:

array_remove ()

array_remove () est utilisé pour supprimer une valeur particulière dans un tableau entre toutes les lignes dans une colonne de type de tableau. Il faut deux paramètres.

Syntaxe:

array_remove (array_column, 'value')

Paramètres:

  1. Array_Column est la colonne de tableau qui a des tableaux avec des valeurs
  2. la valeur est présente dans le tableau à supprimer des valeurs du tableau.

La fonction array_remove () est utilisée avec la méthode select () pour effectuer l'action.

Exemple:

Dans cet exemple, nous supprimerons:

  1. 'A' de la colonne Student_Full_name
  2. 'P' de la colonne Student_Full_name
  3. 'K' de la colonne Student_full_name
# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# et importent des types de structures et d'autres types de données
de Pyspark.SQL.Types Import StructType, StructField, StringType, IntegerType, FloatType, ArrayType
de Pyspark.SQL.Fonctions Importer Array_Contains
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Envisagez un tableau avec 5 éléments
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p'])]]
#Define le structure et les structures
# pour les données ci-dessus
schéma = structType ([structField ("Student_Category", IntegerType ()), StructField ("Student_full_name", ArrayType (StringType ()))])
# réintégrer le dataframe et ajouter un schéma au dataframe
df = spark_app.CreateDataFrame (my_array_data, schéma = schéma)
# Affichez le dataframe en supprimant la valeur «A»
df.SELECT ("Student_full_name", array_remove ('student_full_name', 'a')).montrer()
# Affichez le dataframe en supprimant la valeur «p»
df.SELECT ("Student_full_name", array_remove ('student_full_name', 'p')).montrer()
# Affichez le dataframe en supprimant la valeur «k»
df.SELECT ("Student_full_name", array_remove ('student_full_name', 'k')).montrer()

Sortir:

Dans la première sortie, nous pouvons voir dans les deuxième colonnes:

Les valeurs A, P et K sont supprimées.

taille()

size () est utilisé pour renvoyer la longueur ou le nombre de valeurs présentes dans un tableau dans chaque rangée d'une dataframe. Il faut un paramètre.

Syntaxe:

size ('array_column')

Paramètre:

Array_Column fait référence à la colonne de type de tableau

Exemple:

Obtenez le nombre de valeurs dans un tableau dans la colonne Student_Full_name.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# et importent des types de structures et d'autres types de données
de Pyspark.SQL.Types Import StructType, StructField, StringType, IntegerType, FloatType, ArrayType
de Pyspark.SQL.Fonctions Importer Array_Contains
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Envisagez un tableau avec 5 éléments
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p'])]]
#Define le structure et les structures
# pour les données ci-dessus
schéma = structType ([structField ("Student_Category", IntegerType ()), StructField ("Student_full_name", ArrayType (StringType ()))])
# réintégrer le dataframe et ajouter un schéma au dataframe
df = spark_app.CreateDataFrame (my_array_data, schéma = schéma)
# Obtenez la taille des valeurs du tableau dans toutes les lignes de la colonne Student_Full_name
df.select ("Student_full_name", size ('Student_full_name'))).montrer()

Sortir:

Nous pouvons voir que les valeurs totales présentes dans le tableau dans chaque ligne sont renvoyées.

inverse()

reverse () est utilisé pour inverser le tableau dans chaque ligne.

Syntaxe:

reverse ('array_column')

Paramètre:

Array_Column fait référence à la colonne de type de tableau

Exemple:

Inverser le tableau pour toutes les lignes de la colonne Student_full_name.

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# et importent des types de structures et d'autres types de données
de Pyspark.SQL.Types Import StructType, StructField, StringType, IntegerType, FloatType, ArrayType
de Pyspark.SQL.Fonctions Importer Array_Contains
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Envisagez un tableau avec 5 éléments
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), ( 4, ['k']), (3, ['b', 'p'])]]
#Define le structure et les structures
# pour les données ci-dessus
schéma = structType ([structField ("Student_Category", IntegerType ()), StructField ("Student_full_name", ArrayType (StringType ()))])
# réintégrer le dataframe et ajouter un schéma au dataframe
df = spark_app.CreateDataFrame (my_array_data, schéma = schéma)
# Valeurs de tableau inverse dans la colonne Student_Full_name
df.SELECT ("Student_full_name", reverse ('Student_full_name')).montrer()

Sortir:

Nous pouvons voir que les valeurs du tableau dans Student_full_name (2e colonne) sont inversées.

Conclusion

Dans cet article, nous avons vu trois fonctions différentes appliquées sur les colonnes de type de tableau Pyspark. array_remove () est utilisé pour supprimer une valeur particulière présente dans un tableau dans toutes les lignes. Size () est utilisé pour obtenir le nombre total de valeurs présentes dans un tableau et reverse () est utilisé pour inverser le tableau.