Dans Python, Pyspark est un module Spark qui fournit un type de traitement similaire comme Spark en utilisant DataFrame. expr () dans Pyspark fait référence à une expression SQL utilisée pour extraire les données en effectuant certaines opérations. expr () peut être utilisé dans de nombreux scénarios.
Syntaxe réelle
Expr (expression SQL)
Il prend une expression SQL et effectue certaines opérations dans l'expression.
Discutons-le un par un. Avant cela, nous devons créer un pyspark dataframe pour la démonstration."
Exemple
Nous allons créer un dataframe avec 5 lignes et 6 colonnes et l'afficher à l'aide de la méthode Show ().
# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#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, '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»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
#display dataframe
df.montrer()
Sortir
Scénario 1: Concaténer une ou plusieurs colonnes
Dans ce scénario, nous concaterons une ou plusieurs colonnes dans le Pyspark DataFrame à l'aide de l'expr ().
Il utilise la méthode WithColumn () pour créer un nouveau nom de colonne pour les colonnes concaténées.
Syntaxe
trame de données.withColumn ("Column_name", expression)
Paramètres
Il faut deux paramètres.
- Le premier est le nom de colonne utilisé comme nom de colonne pour les colonnes concaténées
- L'expression est créée en utilisant expr () pour concaténer les colonnes.
Ici, l'expression est:
Expr ("Column1 || Séparateur || Column2 || Séparateur '||… || Colonne n”)
Ici, la colonne fait référence aux noms de colonne à concaténer avec un séparateur entre eux. Cela peut être n'importe quel personnage, comme des caractères spéciaux.
Exemple
Dans cet exemple, nous concatérons trois colonnes - Roll Aucun nom et adresse séparés par «-» et le nom de colonne pour ces colonnes concaténées est - «Rollno avec nom et adresse."
# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#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, '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»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
#concate rollno, colonnes de nom et d'adresse uaing expr ()
df.withColumn ("rollno avec nom et adresse", expr ("rollno || '-' || name || '-' || adresse")).montrer()
Sortir
Nous pouvons voir que les colonnes RollNo, Name et Address sont concaténées avec le séparateur «-».
Scénario 2: Ajoutez une nouvelle colonne basée sur les conditions
Ici, nous utiliserons Expr () pour spécifier les conditions à l'intérieur et, avec COLUMM (), pour attribuer les valeurs des conditions renvoyées dans une nouvelle colonne.
Nous pouvons spécifier les conditions à l'aide du cas lorsque
Structure
Cas quand
ALORS
Cas quand
ALORS
…
…
AUTRE
FIN
À l'intérieur, quand nous devons fournir la condition et à l'intérieur, alors nous devons effectuer une action.
Si la condition à l'intérieur est vraie, alors le bloc est exécuté. S'il échoue, il va au bloc Else et à la fin.
Cette instruction conditionnelle est fournie dans expr () en tant qu'expression SQL.
Syntaxe
trame de données.withColumn ("colonne", expr ("cas quand condition1 puis action" + "quand condition2 puis action… else action end")))
Où,
- la colonne est la nouvelle colonne créée et les valeurs sont attribuées en fonction des conditions de cette colonne
- expr () prend en charge lorsque la logique conditionnelle
Exemple
Dans cet exemple, nous créons une nouvelle colonne - «hauteur améliorée» et lui attribuant des valeurs en fonction des conditions suivantes appliquées à la colonne de hauteur.
Si la hauteur est supérieure à 5 - attribuez 10 dans la colonne de hauteur améliorée à travers elle.
Si la hauteur est inférieure à 5 - attribuez 5 dans la colonne de hauteur améliorée à travers elle.
Sinon, améliorez la colonne de hauteur à 7 à travers les lignes.
# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#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, '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»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
Colonne #in de hauteur
#if la hauteur est supérieure à 5 - attribuez 10 dans une colonne de hauteur améliorée à travers elle
#if la hauteur est inférieure à 5 - attribuez 5 dans une colonne de hauteur améliorée à travers elle
# autres colonnes de hauteur améliorées comme 7 à travers les lignes
df.WithColumn ("Hauteur améliorée", expr ("Cas quand hauteur> 5 puis 10" + "en hauteur <5 THEN 5 ELSE 7 END")).show()
Sortir
Nous pouvons voir que les valeurs sont allouées dans la colonne «à hauteur améliorée» en fonction des conditions.
Scénario 3: effectuer des opérations arithmétiques
Il est possible d'effectuer des opérations arithmétiques comme l'addition, la soustraction, la multiplication et la division avec des colonnes existantes en utilisant expr ().
Ici expr () peut être utilisé avec une clause de sélection pour afficher les colonnes mises à jour.
Syntaxe
trame de données.select (expr («expression»))
L'expression est utilisée pour effectuer des opérations arithmétiques qui peuvent être:
"Valeur Colonne Arithmetic_Operator As New_Column"
Ici, la colonne est le nom de colonne dans lequel nous pouvons effectuer des opérations arithmétiques; La valeur est le nombre ajouté à chaque ligne de la colonne, et new_column est le nom de colonne qui stocke le résultat.
Exemple
Dans cet exemple, nous effectuerons deux opérations arithmétiques - ajout et soustraction sur la colonne d'âge.
# importer le module Pyspark
Importer Pyspark
#mport Sparkcession pour la création d'une session
de Pyspark.SQL IMPORT SPARKSESSE
#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, '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»]
# Créer le DataFrame
df = spark_app.CreatedataFrame (étudiants)
#Add 10 à l'âge de l'âge
df.Sélectionner (DF.Âge, expr ("Âge + 10 comme Âge_after_10")).montrer()
#Substract 10 de la colonne d'âge
df.Sélectionner (DF.Âge, expr ("Âge - 10 ans comme Âge_before_10")).montrer()
Sortir
Dans l'opération d'addition, nous en ajoutons 10 à la colonne d'âge et stockons dans la colonne "Age_After_10".
Dans l'opération de soustraction, nous soustrayons 10 de la colonne d'âge et le stockons dans la colonne "Age_Before_10".
Conclusion
Dans ce tutoriel Pyspark, nous avons vu comment utiliser expr () dans trois scénarios différents. Il peut être utilisé pour les expressions conditionnelles, il peut être utilisé pour effectuer des opérations arithmétiques, et il peut être utilisé pour concaténer plusieurs colonnes.