Ajouter une nouvelle colonne au Pyspark DataFrame

Ajouter une nouvelle colonne au Pyspark DataFrame
Dans Python, Pyspark est un module Spark utilisé pour fournir un type de traitement similaire comme Spark en utilisant DataFrame. Nous discuterons de la façon d'ajouter une nouvelle colonne au Pyspark existant.

Avant de passer aux méthodes, nous créerons Pyspark DataFrame.

Exemple:

Ici, nous allons créer Pyspark DataFrame avec 5 lignes et 6 colonnes.

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

Sortir:

Méthode 1: Ajouter une nouvelle colonne avec des valeurs en utilisant WithColumn ()

Nous pouvons ajouter une nouvelle colonne à partir d'une colonne existante en utilisant la méthode WithColumn ().

Syntaxe:

trame de données.withColumn ("new_column", col ("column_name"))

Paramètres:

  1. new_column est la colonne.
  2. La fonction col () est utilisée pour ajouter ses valeurs de colonne au nouveau_column.

Exemple:

Dans cet exemple, nous allons créer une nouvelle colonne - «Power» et ajouter des valeurs à cette colonne multipliant chaque valeur dans la colonne de poids par 10.

#IMPORT LE MODULE PYSPAPRK
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#IMPORT LA FONCTION COL
de Pyspark.SQL.Fonctions Import Col
#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 = ['rollno': '001', 'name': 'sravan', 'Âge': 23,
'Hauteur': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16,
'Hauteur': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7,
'Hauteur': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9,
'Hauteur': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37,
'Hauteur': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
Colonne #Add nommée Power
# de la colonne de poids multipliée par 2
df = df.WithColumn ("Power", col ("poids") * 2)
#Display DataFrame modifié
Imprimer (DF.collecter())
#lets affiche le schéma
df.impriméschema ()

Sortir:

[Row (adresse = 'guntur', âge = 23, hauteur = 5.79, name = 'sravan', rollno = '001', poids = 67, puissance = 134), ligne (adresse = 'hyd', âge = 16, hauteur = 3.79, name = 'ojaswi', rollno = '002', poids = 34, puissance = 68), ligne (adresse = 'patna', âge = 7, hauteur = 2.79, name = 'gnanesh chowdary', rollno = '003', poids = 17, puissance = 34), ligne (adresse = 'hyd', âge = 9, hauteur = 3.69, name = 'rohith', rollno = '004', poids = 28, puissance = 56), ligne (adresse = 'hyd', âge = 37, hauteur = 5.59, name = 'sridevi', rollno = '005', poids = 54, puissance = 108)]
racine
| - Adresse: String (nullable = true)
| - âge: long (nullable = true)
| - hauteur: double (nullable = true)
| - Nom: String (nullable = true)
| - rollno: string (nullable = true)
| - poids: long (nullable = true)
| - puissance: long (nullable = true)

Méthode 2: Ajouter une nouvelle colonne avec aucune valeur en utilisant WithColumn ()

Nous pouvons ajouter une nouvelle colonne avec aucune des valeurs en utilisant la méthode withColumn () via la fonction lit ().

Syntaxe:

trame de données.withColumn ("new_column", lit (aucun))

Paramètres:

  1. new_column est la colonne.
  2. lit () est une fonction utilisée pour ajouter des valeurs à la colonne.

Exemple:

Dans cet exemple, nous allons créer une nouvelle colonne - «Power» et ajouter aucune des valeurs à cette colonne.

#IMPORT LE MODULE PYSPAPRK
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#IMPORT LES FONCTIONS COL, LIT
de Pyspark.SQL.Fonctions Import Col, allumé
#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 = ['rollno': '001', 'name': 'sravan', 'Âge': 23,
'Hauteur': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16,
'Hauteur': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7,
'Hauteur': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9,
'Hauteur': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37,
'Hauteur': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
Colonne #Add nommée Power
# avec aucune valeur
df = df.withColumn ("Power", allumé (aucun))
#Display DataFrame modifié
Imprimer (DF.collecter())

Sortir:

[Row (adresse = 'guntur', âge = 23, hauteur = 5.79, name = 'sravan', rollno = '001', poids = 67, puissance = aucun), ligne (adresse = 'hyd', âge = 16, hauteur = 3.79, name = 'ojaswi', rollno = '002', poids = 34, puissance = aucun), ligne (adresse = 'patna', âge = 7, hauteur = 2.79, name = 'gnanesh chowdary', rollno = '003', poids = 17, puissance = aucun), ligne (adresse = 'hyd', âge = 9, hauteur = 3.69, name = 'rohith', rollno = '004', poids = 28, puissance = aucun), ligne (adresse = 'hyd', âge = 37, hauteur = 5.59, name = 'sridevi', rollno = '005', poids = 54, puissance = aucun)]

Méthode 3: Ajouter une nouvelle colonne avec des valeurs basées sur la condition à l'aide de WithColumn ()

Nous pouvons ajouter une nouvelle colonne avec des conditions en utilisant la méthode et les valeurs WithColumn () via la fonction lit (). Nous pouvons spécifier les conditions en utilisant la fonction quand (). Cela peut être importé de Pyspark.SQL.les fonctions.

Syntaxe:

trame de données.withColumn ("new_column", quand ((dataframe.colonne < 11), lit("value1"))
.Quand ((condition), lit ("valeur2"))

. Quand ((condition), lit ("valeur n"))
.sinon (lit ("valeur")))

Paramètres:

  1. new_column est la colonne.
  2. lit () est une fonction utilisée pour ajouter des valeurs à la colonne.
  3. Quand () prendra la condition comme entrée et ajoutera des valeurs en fonction des critères satisfaits.
  4. Sinon () est le dernier qui exécutera l'une des conditions ci-dessus qui ne répondent pas aux critères.

Exemple:

Dans cet exemple, nous allons créer une nouvelle colonne - «puissance» et ajouter des valeurs de la colonne d'âge.

  • Ajouter une faible valeur si l'âge est inférieur à - 11
  • ajouter une valeur élevée si l'âge est inférieur ou égal à - 12 et supérieur ou égal à - 20
  • Sinon, ajoutez une valeur élevée
#IMPORT LE MODULE PYSPAPRK
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#IMPORT LE COL, allumé, lorsque les fonctions
de Pyspark.SQL.fonctions import Col, allumé, quand
#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 = ['rollno': '001', 'name': 'sravan', 'Âge': 23,
'Hauteur': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16,
'Hauteur': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7,
'Hauteur': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9,
'Hauteur': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37,
'Hauteur': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
#Add une colonne - puissance
#Add Colonne Vales basée sur la colonne d'âge
# par spécification des conditions
df.WithColumn ("Power", quand ((df.âge < 11), lit("Low"))
.Quand ((df.Âge> = 12) & (df.âge <= 20), lit("Medium"))
.sinon (lit ("high"))).montrer()

Sortir:

Méthode 4: Ajouter une nouvelle colonne avec des valeurs à l'aide de select ()

Nous pouvons ajouter une nouvelle colonne à partir d'une colonne existante à l'aide de la méthode SELECT ().

Syntaxe:

trame de données.SELECT (LIT (DF.colonne).alias ("new_column"))

Paramètres:

  1. new_column est la colonne.
  2. La fonction lit () est utilisée pour ajouter des valeurs de colonne au new_column.

Exemple:

Dans cet exemple, nous allons créer une nouvelle colonne - «Power» et ajouter des valeurs à cette colonne multipliant chaque valeur dans la colonne de poids par 10.

#IMPORT LE MODULE PYSPAPRK
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#IMPORT LES FONCTIONS COL, LIT
de Pyspark.SQL.Fonctions Import Col, allumé
#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 = ['rollno': '001', 'name': 'sravan', 'Âge': 23,
'Hauteur': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16,
'Hauteur': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7,
'Hauteur': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9,
'Hauteur': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37,
'Hauteur': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
Colonne #Add Nommé - Colonne Power From Weight
# ajouter des valeurs en multipliant avec 10
df.SELECT ("Rollno", allumé (DF.poids * 10).alias ("puissance")).montrer()

Sortir:

Méthode 5: Ajouter une nouvelle colonne avec aucune valeur à l'aide de select ()

Nous pouvons ajouter une nouvelle colonne avec des valeurs nulles en utilisant la méthode SELECT ().

Syntaxe:

trame de données.SELECT (LIT (Aucun).alias ("new_column"))

Paramètres:

  1. new_column est la colonne
  2. La fonction lit () est utilisée pour ajouter aucune valeur

Exemple:

Dans cet exemple, nous allons créer une nouvelle colonne - «Power» et ajouter aucune des valeurs à cette colonne.

#IMPORT LE MODULE PYSPAPRK
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#IMPORT LES FONCTIONS COL, LIT
de Pyspark.SQL.Fonctions Import Col, allumé
#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 = ['rollno': '001', 'name': 'sravan', 'Âge': 23,
'Hauteur': 5.79, «poids»: 67, «adresse»: «guntur»,
'rollno': '002', 'name': 'ojaswi', 'Âge': 16,
'Hauteur': 3.79, «poids»: 34, «adresse»: «hyd»,
'rollno': '003', 'name': 'gnanesh chowdary', 'Âge': 7,
'Hauteur': 2.79, «poids»: 17, «adresse»: «patna»,
'rollno': '004', 'name': 'rohith', 'Âge': 9,
'Hauteur': 3.69, «poids»: 28, «adresse»: «hyd»,
'rollno': '005', 'name': 'sridevi', 'Âge': 37,
'Hauteur': 5.59, «poids»: 54, «adresse»: «hyd»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
Colonne #add nommée - Power
# Ajouter des valeurs nulles sans aucune
df.SELECT ("Rollno", allumé (aucun).alias ("puissance")).montrer()

Sortir:

Conclusion

Dans ce didacticiel, nous avons discuté de la façon d'ajouter une nouvelle colonne à l'aide de Select () et des fonctions WithColumn (). Nous avons observé que Lit () est la fonction qui est utilisée pour ajouter des valeurs à la nouvelle colonne. Enfin, nous avons discuté de la façon d'ajouter des valeurs non / nuls et les valeurs des colonnes existantes au Pyspark DataFrame.