Pyspark - StructType & Structfield

Pyspark - StructType & Structfield
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 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.

Syntaxe:

schéma = structtype ([
Structfield ("colonne 1", type de données, vrai / false),
StructField ("Colonne 2", DataType, True / False),
… ,
StructField ("colonne n", type de données, true / false)])

Où le schéma fait référence au dataframe lorsqu'il est créé

Paramètres:

1. StructType accepte une liste de structures dans une liste séparée par une virgule

2. StructField () est utilisé pour ajouter des colonnes au DataFrame, qui prend les noms de colonne comme le premier paramètre et le type de données des colonnes particulières comme deuxième paramètre.

Nous devons utiliser les types de données à partir des méthodes qui sont importées du pyspark.SQL.Module de types.

Les types de données pris en charge sont:

  • StringType () - Utilisé pour stocker des valeurs de chaîne
  • IntegerType () - Utilisé pour stocker des valeurs entières ou entier longues
  • FloatType () - utilisé pour stocker les valeurs flottantes
  • DoubleType () - Utilisé pour stocker des valeurs doubles

3. Valeurs booléennes comme troisième paramètre; Si c'est vrai, le type de données donné sera utilisé; Sinon, pas quand c'est faux.

Nous devons transmettre ce schéma à la méthode DataFrame avec des données.

Syntaxe:

CreatedataFrame (données, schéma = schéma)

Exemple 1:

Dans cet exemple, nous avons créé des données dans la liste qui contient 5 lignes et 6 colonnes, et nous attribuons des noms de colonnes comme RollNO avec le type de données de chaîne, un nom avec le type de données de chaîne, l'âge avec le type entier, la hauteur avec un type de flotteur , poids avec entier et adresse avec le type de données de chaîne.

Enfin, nous allons afficher le dataframe à l'aide de la méthode show ().

#IMPORT LE MODULE PYSPAPRK
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# et importent des types de structures et des types de données
de Pyspark.SQL.Types Import StructType, StructField, StringType, IntegerType, FloatType
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = [['001', 'sravan', 23,5.79,67, «Guntur»],
['002', 'ojaswi', 16,3.79,34, «hyd»],
['003', 'Gnanesh Chowdary', 7,2.79,17, 'Patna'],
['004', 'Rohith', 9,3.69,28, «hyd»],
['005', 'sridevi', 37,5.59,54, «hyd»]]
#Define le structure et les structures
# pour les noms de colonne ci-dessous
schéma = structtype ([
StructField ("rollno", stringType (), true),
StructField ("name", stringType (), true),
StructField ("Age", IntegerType (), True),
Structfield ("hauteur", floatType (), true),
Structfield ("poids", IntegerType (), true),
StructField ("adresse", stringType (), true)
])
# réintégrer le dataframe et ajouter un schéma au dataframe
df = spark_app.CreatedataFrame (étudiants, schéma = schéma)
#display le dataframe
df.montrer()

Sortir:

Si nous voulons afficher le schéma DataFrame, nous devons utiliser la méthode du schéma.

Cela renverra le type de dataframe avec les colonnes

Syntaxe:

Trame de données. schéma

Si nous voulons afficher des champs, nous devons utiliser des champs avec un schéma

Syntaxe:

Trame de données. schéma.des champs

Exemple 2

Dans cet exemple, nous allons afficher le schéma du dataframe

#IMPORT LE MODULE PYSPAPRK
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# et importent des types de structures et des types de données
de Pyspark.SQL.Types Import StructType, StructField, StringType, IntegerType, FloatType
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = [['001', 'sravan', 23,5.79,67, «Guntur»],
['002', 'ojaswi', 16,3.79,34, «hyd»],
['003', 'Gnanesh Chowdary', 7,2.79,17, 'Patna'],
['004', 'Rohith', 9,3.69,28, «hyd»],
['005', 'sridevi', 37,5.59,54, «hyd»]]
#Define le structure et les structures
# pour les noms de colonne ci-dessous
schéma = structtype ([
StructField ("rollno", stringType (), true),
StructField ("name", stringType (), true),
StructField ("Age", IntegerType (), True),
Structfield ("hauteur", floatType (), true),
Structfield ("poids", IntegerType (), true),
StructField ("adresse", stringType (), true)
])
# réintégrer le dataframe et ajouter un schéma au dataframe
df = spark_app.CreatedataFrame (étudiants, schéma = schéma)
# Afficher le schéma
Imprimer (DF.schéma)

Sortir:

[Structfield (rollno, stringType, true), structField (name, stringType, true), structfield (Âge, IntegerType, true), structfield (height, floatType, true), structfield (Weight, IntegerType, true), structfield (adresse, adresse, StringType, true)]

Exemple 3

Dans cet exemple, nous allons afficher les champs de schéma du dataframe à l'aide du schéma.des champs

#IMPORT LE MODULE PYSPAPRK
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# et importent des types de structures et des types de données
de Pyspark.SQL.Types Import StructType, StructField, StringType, IntegerType, FloatType
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = [['001', 'sravan', 23,5.79,67, «Guntur»],
['002', 'ojaswi', 16,3.79,34, «hyd»],
['003', 'Gnanesh Chowdary', 7,2.79,17, 'Patna'],
['004', 'Rohith', 9,3.69,28, «hyd»],
['005', 'sridevi', 37,5.59,54, «hyd»]]
#Define le structure et les structures
# pour les noms de colonne ci-dessous
schéma = structtype ([
StructField ("rollno", stringType (), true),
StructField ("name", stringType (), true),
StructField ("Age", IntegerType (), True),
Structfield ("hauteur", floatType (), true),
Structfield ("poids", IntegerType (), true),
StructField ("adresse", stringType (), true)
])
# réintégrer le dataframe et ajouter un schéma au dataframe
df = spark_app.CreatedataFrame (étudiants, schéma = schéma)
# Afficher les champs de schéma
Imprimer (DF.schéma.des champs)

Sortir:

[Structfield (rollno, stringType, true), structField (name, stringType, true), structfield (Âge, IntegerType, true), structfield (height, floatType, true), structfield (Weight, IntegerType, true), structfield (adresse, adresse, StringType, true)]

Nous pouvons également utiliser la méthode impriméschema () pour afficher le schéma au format d'arbre

Syntaxe:

Trame de données.impriméschema ()

Exemple 4:

Afficher le schéma au format d'arbre avec la méthode impriméschema ()

#IMPORT LE MODULE PYSPAPRK
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# et importent des types de structures et des types de données
de Pyspark.SQL.Types Import StructType, StructField, StringType, IntegerType, FloatType
#create une application nommée Linuxhint
Spark_App = Sparkcession.constructeur.appname ('Linuxhint').getorCreate ()
# Créer des données étudiants avec 5 lignes et 6 attributs
étudiants = [['001', 'sravan', 23,5.79,67, «Guntur»],
['002', 'ojaswi', 16,3.79,34, «hyd»],
['003', 'Gnanesh Chowdary', 7,2.79,17, 'Patna'],
['004', 'Rohith', 9,3.69,28, «hyd»],
['005', 'sridevi', 37,5.59,54, «hyd»]]
#Define le structure et les structures
# pour les noms de colonne ci-dessous
schéma = structtype ([
StructField ("rollno", stringType (), true),
StructField ("name", stringType (), true),
StructField ("Age", IntegerType (), True),
Structfield ("hauteur", floatType (), true),
Structfield ("poids", IntegerType (), true),
StructField ("adresse", stringType (), true)
])
# réintégrer le dataframe et ajouter un schéma au dataframe
df = spark_app.CreatedataFrame (étudiants, schéma = schéma)
# Afficher le schéma au format d'arbre
df.impriméschema ()

Sortir: