En este artículo, vamos a ver dónde filtrar en PySpark Dataframe. Where() es un método utilizado para filtrar las filas de DataFrame según la condición dada. El método where() es un alias para el método filter(). Ambos métodos funcionan exactamente igual. También podemos aplicar condiciones únicas y múltiples en las columnas de DataFrame usando el método where().
Sintaxis: DataFrame.where(condición)
Ejemplo 1:
El siguiente ejemplo es para ver cómo aplicar una sola condición en Dataframe usando el método where().
Python3
# importing required module import pyspark from pyspark.sql import SparkSession from pyspark.sql import functions as F # creating sparksession and giving an app name spark = SparkSession.builder.appName('sparkdf').getOrCreate() # list of Employees data data = [ (121, ("Mukul", "Kumar"), 25000, 25), (122, ("Arjun", "Singh"), 28000, 23), (123, ("Rohan", "Verma"), 30000, 27), (124, ("Manoj", "Singh"), 30000, 22), (125, ("Robin", "Kumar"), 28000, 23) ] # specify column names columns = ['Employee ID', 'Name', 'Salary', 'Age'] # creating a dataframe from the lists of data df = spark.createDataFrame(data, columns) print(" Original data ") df.show() # filter dataframe based on single condition df2 = df.where(df.Salary == 28000) print(" After filter dataframe based on single condition ") df2.show()
Producción:
Ejemplo 2:
El siguiente ejemplo es para entender cómo aplicar múltiples condiciones en Dataframe usando el método where().
Python3
# importing required module import pyspark from pyspark.sql import SparkSession from pyspark.sql import functions as F # creating sparksession and giving an app name spark = SparkSession.builder.appName('sparkdf').getOrCreate() # list of Employees data data = [ (121, ("Mukul", "Kumar"), 22000, 23), (122, ("Arjun", "Singh"), 23000, 22), (123, ("Rohan", "Verma"), 24000, 23), (124, ("Manoj", "Singh"), 25000, 22), (125, ("Robin", "Kumar"), 26000, 23) ] # specify column names columns = ['Employee ID', 'Name', 'Salary', 'Age'] # creating a dataframe from the lists of data df = spark.createDataFrame(data, columns) print(" Original data ") df.show() # filter dataframe based on multiple conditions df2 = df.where((df.Salary > 22000) & (df.Age == 22)) print(" After filter dataframe based on multiple conditions ") df2.show()
Producción:
Ejemplo 3:
El siguiente ejemplo es para saber cómo filtrar Dataframe usando el método where() con condición de Columna. Usaremos métodos where() con condiciones específicas.
Python3
# importing required module import pyspark from pyspark.sql import SparkSession from pyspark.sql import functions as F # creating sparksession and giving an app name spark = SparkSession.builder.appName('sparkdf').getOrCreate() # list of Employees data data = [ (121, "Mukul", 22000, 23), (122, "Arjun", 23000, 22), (123, "Rohan", 24000, 23), (124, "Manoj", 25000, 22), (125, "Robin", 26000, 23) ] # specify column names columns = ['Employee ID', 'Name', 'Salary', 'Age'] # creating a dataframe from the lists of data df = spark.createDataFrame(data, columns) print("Original Dataframe") df.show() # where() method with SQL Expression df2 = df.where(df["Age"] == 23) print(" After filter dataframe") df2.show()
Producción:
Ejemplo 4:
El siguiente ejemplo es para saber cómo usar el método where() con SQL Expression.
Python3
# importing required module import pyspark from pyspark.sql import SparkSession from pyspark.sql import functions as F # creating sparksession and giving an app name spark = SparkSession.builder.appName('sparkdf').getOrCreate() # list of Employees data data = [ (121, "Mukul", 22000, 23), (122, "Arjun", 23000, 22), (123, "Rohan", 24000, 23), (124, "Manoj", 25000, 22), (125, "Robin", 26000, 23) ] # specify column names columns = ['Employee ID', 'Name', 'Salary', 'Age'] # creating a dataframe from the lists of data df = spark.createDataFrame(data, columns) print("Original Dataframe") df.show() # where() method with SQL Expression df2 = df.where("Age == 22") print(" After filter dataframe") df2.show()
Producción:
Publicación traducida automáticamente
Artículo escrito por mukulsomukesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA