Subconjunto o filtro de datos con múltiples condiciones en PySpark

A veces, al tratar con un marco de datos grande que consta de varias filas y columnas, tenemos que filtrar el marco de datos, o queremos el subconjunto del marco de datos para aplicar la operación de acuerdo con nuestra necesidad. Para obtener un subconjunto o filtrar los datos, a veces no es suficiente con una sola condición, muchas veces tenemos que pasar las múltiples condiciones para filtrar u obtener el subconjunto de ese marco de datos. Entonces, en este artículo, vamos a aprender cómo crear subconjuntos o filtrar en función de múltiples condiciones en el marco de datos de PySpark.

Para dividir en subconjuntos o filtrar los datos del marco de datos, usamos la función filter() . La función de filtro se utiliza para filtrar los datos del marco de datos en función de la condición dada, debe ser único o múltiple.

Sintaxis: df.filter(condición)

donde df es el marco de datos del que se subconjunto o filtran los datos.

Podemos pasar las múltiples condiciones a la función de dos maneras:

  • Uso de comillas dobles («condiciones»)
  • Usando la notación de puntos en condición

Vamos a crear un marco de datos.

Python

# importing necessary libraries
from pyspark.sql import SparkSession
  
# function to create SparkSession
def create_session():
    spk = SparkSession.builder \
        .master("local") \
        .appName("Student_report.com") \
        .getOrCreate()
    return spk
  
  
def create_df(spark, data, schema):
    df1 = spark.createDataFrame(data, schema)
    return df1
  
  
if __name__ == "__main__":
  
    # calling function to create SparkSession
    spark = create_session()
  
    input_data = [(1, "Shivansh", "Male", 20, 80),
                  (2, "Arpita", "Female", 18, 66),
                  (3, "Raj", "Male", 21, 90),
                  (4, "Swati", "Female", 19, 91),
                  (5, "Arpit", "Male", 20, 50),
                  (6, "Swaroop", "Male", 23, 65),
                  (7, "Reshabh", "Male", 19, 70)]
    schema = ["Id", "Name", "Gender", "Age", "Percentage"]
  
    # calling function to create dataframe
    df = create_df(spark, input_data, schema)
    df.show()

Producción:

Apliquemos el filtro aquí:

Ejemplo 1: Uso del operador y’ entre comillas dobles («»)

Python

# subset or filter the dataframe by
# passing Multiple condition
df = df.filter("Gender == 'Male' and Percentage>70")
df.show()

Producción:

Ejemplo 2: Uso del operador ‘o entre comillas dobles («»)

Python

# subset or filter the data with
# multiple condition
df = df.filter("Age>20 or Percentage>80")
df.show()

Producción:

Ejemplo 3: Usar el operador ‘& con el operador (.)

Python

# subset or filter the dataframe by
# passing Multiple condition
df = df.filter((df.Gender=='Female') & (df.Age>=18))
df.show()

Producción:

Ejemplo 4: Usando el ‘| operador con el operador (.)

Python

# subset or filter the data with
# multiple condition
df = df.filter((df.Gender=='Male') | (df.Percentage>90))
df.show()

Producción:

Publicación traducida automáticamente

Artículo escrito por srishivansh5404 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *