Pyspark arra_min et array_max

Pyspark arra_min et array_max
Dans Python, Pyspark est un module Spark utilisé pour fournir un type de traitement similaire comme Spark en utilisant DataFrame.

Il fournit les méthodes structType () et structField () qui sont utilisées pour définir les colonnes du Pyspark DataFrame.

En utilisant ces méthodes, nous pouvons définir les noms de colonne et les types de données des colonnes.

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

Maintenant, nous verrons ce que fait array_min ().

array_min () renvoie les valeurs minimales dans chaque ligne de la colonne de type de tableau.

Ceci est possible en utilisant la méthode SELECT (). À l'intérieur de cette méthode, nous pouvons utiliser la fonction array_min () et renvoyer le résultat.

Syntaxe:

trame de données.select (array_min (array_column)))

Paramètres:

Array_Column contient des valeurs de type de tableau

Retour:

Il renverra des valeurs minimales dans un tableau sur toutes les lignes d'une colonne de tableau.

Exemple:

Dans cet exemple, nous retournerons les valeurs minimales dans une colonne de tableau - 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 Import *
#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 les valeurs minimales de la colonne Student_full_name
df.select ("Student_full_name", array_min ('student_full_name'))).montrer()

Sortir:

Nous pouvons voir que dans la première ligne, - le tableau contient: A, donc A sera le minimum (comparé sur la base des valeurs ASCII).

Dans la deuxième rangée - le tableau a b, l, b. - B est minimum

En troisième rangée - le tableau a k, a, k. - A est minimum

En quatrième rangée - le tableau a k-. K est minimum

Dans la cinquième rangée - le tableau a b, p. - B est minimum

array_max ()

Maintenant, nous verrons ce que faire array_max ().

array_max () renvoie les valeurs maximales dans chaque ligne de la colonne de type de tableau.

Ceci est possible en utilisant la méthode SELECT (). À l'intérieur de cette méthode, nous pouvons utiliser la fonction array_max () et renvoyer le résultat.

Syntaxe:

trame de données.select (array_max (array_column)))

Paramètres:

Array_Column contient des valeurs de type de tableau

Retour:

Il renverra les valeurs maximales dans un tableau sur toutes les lignes d'une colonne de tableau.

Exemple:

Dans cet exemple, nous retournerons les valeurs maximales dans une colonne de tableau - 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 Import *
#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 les valeurs maximales de la colonne Student_Full_name
df.select ("Student_full_name", array_max ('student_full_name'))).montrer()

Sortir:

Nous pouvons voir que dans la première ligne - le tableau contient: A, donc A sera le maximum (comparé sur la base des valeurs ASCII).

Dans la deuxième rangée - le tableau a b, l, b. - L est maximum

En troisième rangée - le tableau a k, a, k. - K est maximum

En quatrième rangée - le tableau a k-. K est maximum

Dans la cinquième rangée - le tableau a b, p. - P est maximum.

Conclusion

Dans ce tutoriel, nous avons vu des fonctions array_min () et array_max (). array_min utilisé pour renvoyer des valeurs minimales dans une colonne de type de tableau entre toutes les lignes. array_max est utilisé pour renvoyer des valeurs maximales dans une colonne de type de tableau entre toutes les lignes.