Convertir Pyspark Rdd en DataFrame

Convertir Pyspark Rdd en DataFrame
Dans Python, Pyspark est un module Spark utilisé pour fournir un type de traitement similaire comme Spark.

RDD signifie ensemble de données distribuées résilientes. Nous pouvons appeler RDD une structure de données fondamentale dans Apache Spark.

Syntaxe

Spark_App.étincelle.paralléliser (données)

Nous pouvons relier les données dans un format tabulaire. La structure de données utilisée est DataFrame.Le format tabulaire signifie qu'il stocke les données en lignes et colonnes.

Dans Pyspark, nous pouvons créer une application DataFrame à partir de Spark avec la méthode CreateDataFrame ().

Syntaxe

Spark_App.CreatedataFrame (Input_data, colonnes)

Où Input_data peut être un dictionnaire ou une liste pour créer un dataframe à partir de ces données, et si l'entrée_data est une liste de dictionnaires, les colonnes ne sont pas nécessaires. S'il s'agit d'une liste imbriquée, nous devons fournir les noms de colonne.

Maintenant, discutons de la façon de convertir Pyspark RDD en DataFrame.

Création de Pyspark RDD

Dans cet exemple, nous créerons un RDD nommé d'étudiants et l'afficherons en utilisant l'action Collect ().

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# Importer RDD de Pyspark.RDD
de Pyspark.RDD IMPORT RDD
#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 = spark_app.étincelle.parallélile (['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»])
#Display le RDD en utilisant Collect ()
imprimer (étudiants.collecter())

Sortir

['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»]

Méthode 1: Utilisation de CreateDataFrame ()

Il est possible de convertir RDD en DataFrame à partir d'une application Spark avec la méthode CreateDataFrame (). Ici, nous devons passer RDD à cette méthode.

Syntaxe

Spark_App.CreatedataFrame (Input_rdd)

Où input_rdd est le RDD.

Exemple
Dans cet exemple, nous convertissons les étudiants - RDD en DataFrame à l'aide de la méthode CreateDataFrame ().

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# Importer RDD de Pyspark.RDD
de Pyspark.RDD IMPORT RDD
#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 = spark_app.étincelle.parallélile (['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»])
#Check le type d'étudiants
imprimer (type (étudiants))
#convert RDD à DataFrame
df = spark_app.CreatedataFrame (étudiants)
#display le dataframe
df.montrer()
#Check le type de DF
imprimer (type (df))

Sortir

À partir de la sortie ci-dessus, nous pouvons voir que les étudiants sont un RDD (affiché à l'aide du type) et après avoir converti en dataframe, nous avons affiché le dataframe à l'aide de la méthode Show () et pour la confirmation, nous avons renvoyé le type de DataFrame.

Méthode 2: Utilisation de CreateDataFrame () avec schéma

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 importées du pyspark.SQL.Module de types.

Les types de données pris en charge sont:

  • StringType () - Utilisé pour stocker les valeurs de chaîne
  • IntegerType () - Utilisé pour stocker des valeurs entières ou longues
  • FloatType () - Utilisé pour stocker les valeurs flottantes
  • DoubleType () - Utilisé pour stocker des valeurs doubles
  1. Valeurs booléennes comme troisième paramètre. Si c'est vrai, le type de données donné sera utilisé, sinon pas quand il est faux.

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

Syntaxe

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

Syntaxe

Spark_App.CreatedataFrame (Input_rdd)

Où, Input_Rdd est le RDD.

Exemple
Dans cet exemple, nous convertissons les étudiants - RDD en DataFrame à l'aide de la méthode CreateDataFrame () avec les noms de colonne - Rollno, nom, âge, taille, poids et adresse

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# Importer RDD de Pyspark.RDD
de Pyspark.RDD IMPORT RDD
# 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 = spark_app.étincelle.parallélile (['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»])
#Check le type d'étudiants
imprimer (type (étudiants))
#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)
])
#convert RDD à DataFrame
df = spark_app.CreatedataFrame (étudiants, schéma)
#display le dataframe
df.montrer()
#Check le type de DF
imprimer (type (df))

Sortir

À partir de la sortie ci-dessus, nous pouvons voir que les étudiants sont un RDD (affiché à l'aide du type) et après avoir converti en dataframe, nous avons affiché le dataframe à l'aide de la méthode Show () et pour la confirmation, nous avons renvoyé le type de DataFrame.

Méthode 3: Utilisation de Todf ()

todf () ne prend aucun paramètre et les convertit directement en dataframe.

Syntaxe

entrée_rdd.todf ()

Où, Input_Rdd est le RDD.

Exemple
Dans cet exemple, nous convertissons les étudiants - RDD en DataFrame en utilisant la méthode Todf ().

# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
# Importer RDD de Pyspark.RDD
de Pyspark.RDD IMPORT RDD
#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 = spark_app.étincelle.parallélile (['rollno': '001', 'name': 'sravan', 'Âge': 23, 'height': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16, 'height': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7, 'height': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9, 'height': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37, 'height': 5.59, «poids»: 54, «adresse»: «hyd»])
#Check le type d'étudiants
imprimer (type (étudiants))
#convert RDD à DataFrame
DF = étudiants.todf ()
#display le dataframe
df.montrer()
#Check le type de DF
imprimer (type (df))

Sortir

À partir de la sortie ci-dessus, nous pouvons voir que les étudiants sont un RDD (affiché à l'aide du type) et après avoir converti en dataframe, nous avons affiché le dataframe à l'aide de la méthode Show () et pour la confirmation, nous avons renvoyé le type de DataFrame.

Conclusion

Dans ce didacticiel Pyspark, nous avons vu comment convertir Pyspark RDD en Pyspark DataFrame en utilisant CreateDataFrame () et Todf (). Si vous souhaitez fournir des noms de colonne explicitement, vous pouvez utiliser la deuxième méthode de ce tutoriel.