Pyspark shuffle & sort_array

Pyspark shuffle & sort_array
«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 particulières."

Discutons-les un par un

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

Donc, 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

Cela fait référence au champ entier pour stocker les ID des étudiants et la deuxième colonne - Student_full_name

est utilisé 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:

mélanger()

Shuffle () est utilisé pour mélanger les valeurs dans un tableau pour toutes les lignes de la colonne de type tableau du Pyspark DataFrame. Il renverra un nouveau tableau avec des valeurs mélangées. Il prend le nom de la colonne de type tableau comme paramètre. Veuillez noter qu'il mélange au hasard.

Syntaxe:

shuffle (array_column)

Paramètre:

Array_Column est la colonne de tableau qui a des tableaux avec des valeurs

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

Retour:

Il renverra le tableau avec des valeurs mélangées.

Exemple

Dans cet exemple, nous utiliserons la fonction Shuffle () pour mélanger les valeurs présentes 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 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)
#shuffle les valeurs du tableau dans la colonne Student_Full_name
df.SELECT ("Student_full_name", Shuffle ("Student_full_name")).montrer()

Sortir:

Vous pouvez voir dans la deuxième colonne que les valeurs du tableau ont été mélangées.

sort_array ()

sort_array () est utilisé pour trier les éléments dans un tableau. Il faut deux paramètres; Le premier paramètre est le nom de la colonne de type de tableau, et le deuxième paramètre est l'ASC qui prend des valeurs booléennes. Si c'est vrai, alors le tableau est trié par ordre croissant. S'il est faux, le tableau est trié par ordre décroissant. Par défaut, il triera le tableau dans l'ordre croissant.

Syntaxe:

srie_array (array_column, asc = true / false)

Paramètres:

  1. Array_Column est la colonne de tableau qui a des tableaux avec des valeurs
  2. ASC prend des valeurs booléennes pour trier le tableau en ascendant ou dans l'ordre descendant.

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

Retour:

Si renvoie un tableau trié pour toutes les lignes dans une colonne de type de tableau.

Exemple 1

Dans cet exemple, nous trierons la colonne Student_Full_name dans l'ordre croissant.

# 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)
#Sort les valeurs du tableau dans la colonne Student_Full_name dans l'ordre croissant
df.SELECT ("Student_full_name", Sort_Array ("Student_full_name", ASC = true)).montrer()

Sortir:

Donc, dans la deuxième colonne, vous pouvez voir que le tableau est trié en ordre ascendant pour toutes les lignes.

Exemple 2

Dans cet exemple, nous trierons la colonne Student_ful_name dans l'ordre descendant.

# 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)
#Sort les valeurs du tableau dans la colonne Student_Full_name dans l'ordre descendant
df.SELECT ("Student_full_name", Sort_Array ("Student_full_name", ASC = false)).montrer()

Sortir:

Donc, dans la deuxième colonne, vous pouvez voir que le tableau est trié par ordre décroissant pour toutes les lignes.

Conclusion

Dans cet article de Pyspark, nous avons vu deux fonctions de tableau différentes. shuffle () est utilisé pour mélanger les valeurs dans une colonne de type de tableau. Ensuite, nous avons discuté de la méthode sort_array () utilisée pour trier les tableaux dans une colonne de type de tableau. Si vous souhaitez trier le tableau par ordre décroissant, vous pouvez utiliser le paramètre ASC défini sur false.