Pyspark où clause

Pyspark où clause
Dans Python, Pyspark est un module Spark utilisé pour fournir un type de traitement similaire comme Spark en utilisant DataFrame. Dans Pyspark, où () est utilisé pour filtrer les lignes dans le dataframe, il renverra le nouveau DataFrame en filtrant les lignes dans le dataframe existant.
  1. Méthode - 1: où () avec les opérateurs relationnels
  2. Méthode - 2: où () avec des opérateurs relationnels utilisant la fonction col
  3. Méthode - 3: Où () avec des opérateurs relationnels sur plusieurs conditions
  4. Méthode - 4: Où () avec l'expression SQL
  5. Méthode - 5: où () avec des méthodes de chaîne

Créons un Pyspark DataFrame:

Exemple:

Cet exemple créera le Pyspark DataFrame avec 5 lignes et 6 colonnes et l'afficher à 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
#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 dataframe
df.montrer()

Sortir:

Méthode - 1: où () avec les opérateurs relationnels

Ici, nous utilisons la fonction où () pour filtrer le Pyspark DataFrame avec des opérateurs relationnels comme>, < . == etc.

Syntaxe:

Trame de données.Où (DataFrame.Column_name Operator Value)

Ici, où () accepte trois paramètres.

  1. trame de données.Column_name est la colonne où le filtrage est appliqué
  2. L'opérateur est l'opérateur relationnel
  3. la valeur est la valeur string / numérique par rapport aux valeurs de colonne

Exemple:

Dans cet exemple, nous filtrerons le dataframe en fonction des colonnes d'âge, de taille, de poids et de nom avec différents opérateurs relationnels et afficher les lignes filtrées à l'aide de la méthode Collect ().

#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)
#display dataframe
# par âge de filtrage à 23 ans
Imprimer (DF.Où (DF.Âge == 23).collecter())
imprimer("---------------------------")
#display dataframe
# par la hauteur de filtrage comme 2.79
Imprimer (DF.Où (DF.hauteur == 2.79).collecter())
imprimer("---------------------------")
#display dataframe
# par filtrage du poids supérieur à 30
Imprimer (DF.Où (DF.poids> 30).collecter())
imprimer("---------------------------")
#display dataframe
#By Filtrage Nom comme Sravan
Imprimer (DF.Où (DF.name == 'sravan').collecter())

Sortir:

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

Méthode - 2: où () avec des opérateurs relationnels utilisant la fonction col

Ici, nous utilisons la fonction où () pour filtrer le Pyspark DataFrame avec des opérateurs relationnels comme>, < . == etc. through col function

Syntaxe:

Trame de données.WHERE (COL ("Column_name") Valeur de l'opérateur)

Ici, où () accepte trois paramètres.

  1. trame de données.Column_name est la colonne où le filtrage est appliqué
  2. L'opérateur est l'opérateur relationnel
  3. la valeur est la valeur string / numérique par rapport aux valeurs de colonne

Exemple:

Dans cet exemple, nous filtrerons le dataframe en fonction des colonnes d'âge, de taille, de poids et de nom avec différents opérateurs relationnels et afficher les lignes filtrées à l'aide de la méthode Collect ().

#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)
#display dataframe
# par âge de filtrage à 23 ans
Imprimer (DF.où (col ('Âge') == 23).collecter())
imprimer("---------------------------")
#display dataframe
# par la hauteur de filtrage comme 2.79
Imprimer (DF.où (col ('hauteur') == 2.79).collecter())
imprimer("---------------------------")
#display dataframe
# par filtrage du poids supérieur à 30
Imprimer (DF.où (col ('poids')> 30).collecter())
imprimer("---------------------------")
#display dataframe
#By Filtrage Nom comme Sravan
Imprimer (DF.où (col ('name') == 'sravan').collecter())

Sortir:

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

Méthode - 3: Où () avec des opérateurs relationnels sur plusieurs conditions

Ici, nous utilisons la fonction où () pour filtrer le Pyspark DataFrame avec des opérateurs relationnels comme>, < . == etc with multiple conditions.

Syntaxe:

Trame de données.où ((conditine1) opérateur (condition2)… .)

Ici, où () accepte trois paramètres.

  1. trame de données.Column_name est la colonne où le filtrage est appliqué
  2. L'opérateur est l'opérateur relationnel
  3. la valeur est la valeur string / numérique par rapport aux valeurs de colonne
  4. Condition Spécifie - (DataFrame.Column_name Operator Value)

Exemple:

Dans cet exemple, nous allons filtrer le dataframe en fonction de la colonne d'âge avec ou (|) et (&) opérateur et afficher les lignes filtrées à l'aide de la méthode collection ().

#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)
#display dataframe
# par âge de filtrage supérieur à 10 et moins de 21
Imprimer (DF.Où ((DF.Âge> 10) & (df.âge <21)).collect())
imprimer("---------------------------")
#display dataframe
# par âge de filtrage supérieur à 10 ou moins de 21 ans
Imprimer (DF.Où ((DF.Âge> 10) | (df.âge <21)).collect())

Sortir:

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

Méthode - 4: Où () avec l'expression SQL

Ici, nous utilisons la fonction où () pour filtrer le Pyspark DataFrame avec l'expression SQL. La condition est enfermée par «». Cependant, nous pouvons spécifier l'opérateur relationnel comme condition.

Syntaxe:

Trame de données.Où («DataFrame.Column_name Operator Value ”)

Ici, où () accepte trois paramètres.

  1. trame de données.Column_name est la colonne où le filtrage est appliqué
  2. L'opérateur est l'opérateur relationnel
  3. la valeur est la valeur string / numérique par rapport aux valeurs de colonne

Exemple:

Dans cet exemple, nous filtrerons le dataframe en fonction des colonnes d'âge, de taille, de poids et de nom avec différents opérateurs relationnels et afficher les lignes filtrées à l'aide de la méthode Collect ().

#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)
#display dataframe
# par âge de filtrage à 23 ans
#Using SQL Expression
Imprimer (DF.où ("âge == 23").collecter())
imprimer("---------------------------")
#display dataframe
# par la hauteur de filtrage comme 2.79
#Using SQL Expression
Imprimer (DF.où ("hauteur == 2.79 ").collecter())
imprimer("---------------------------")
#display dataframe
# par filtrage du poids supérieur à 30
#Using SQL Expression
Imprimer (DF.où ("poids> 30").collecter())
imprimer("---------------------------")
#display dataframe
#By Filtrage Nom comme Sravan
#Using SQL Expression
Imprimer (DF.où ("name == 'sravan'").collecter())

Sortir:

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

Méthode - 5: où () avec des méthodes de chaîne

Ici, nous utilisons la fonction où () pour filtrer le Pyspark DataFrame avec des méthodes de chaîne. Ceux-ci sont appliqués sur les colonnes dont le type de données est une chaîne. Ils sont

commence avec() - Vérifiez le caractère de départ dans les données données

Syntaxe:

Trame de données.Où (DataFrame.nom de colonne.Startwith ("personnage")

Ici,

Column_name est la colonne où le filtrage est appliqué où la valeur commence par le caractère donné.

se termine par() - Vérifiez le caractère final dans les données données

Syntaxe:

Trame de données.Où (DataFrame.nom de colonne.Endswith ("personnage")

Ici,

Column_name est la colonne où le filtrage est appliqué où la valeur se termine avec le caractère donné.

contient() - Vérifiez que le caractère contient dans les données données

Syntaxe:

Trame de données.Où (DataFrame.nom de colonne.contient ("caractère")

Ici,

Column_name est la colonne où le filtrage est appliqué où la valeur contient avec le caractère donné.

Exemple:

Dans cet exemple, nous allons filtrer en fonction de la colonne d'adresse

#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)
#display dataframe
Adresse de filtrage # par
#starts avec 'h'
Imprimer (DF.Où (DF.adresse.startSwith ("h")).collecter())
imprimer("-----------------")
#display dataframe
Adresse de filtrage # par
#end avec 'r'
Imprimer (DF.Où (DF.adresse.Endswith ("r")).collecter())
imprimer("-----------------")
#display dataframe
Adresse de filtrage # par
#comntains 'Tu'
Imprimer (DF.Où (DF.adresse.contient ("r")).collecter())

Sortir:

[Row (adresse = 'hyd', âge = 16, hauteur = 3.79, name = 'ojaswi', rollno = '002', poids = 34), ligne (adresse = 'hyd', âge = 9, hauteur = 3.69, name = 'rohith', rollno = '004', poids = 28), ligne (adresse = 'hyd', âge = 37, hauteur = 5.59, name = 'sridevi', rollno = '005', poids = 54)]
-----------------
[Row (adresse = 'guntur', âge = 23, hauteur = 5.79, name = 'sravan', rollno = '001', poids = 67)]
-----------------
[Row (adresse = 'guntur', âge = 23, hauteur = 5.79, name = 'sravan', rollno = '001', poids = 67)]

Conclusion

Cet article explique comment utiliser un filtre Where () avec plusieurs méthodes sur le pyspark dataframe en python. Et nous avons également inclus toutes les conditions avec les expressions SQL.