Pyspark: filtre el marco de datos en función de múltiples condiciones

En este artículo, veremos cómo filtrar el marco de datos en función de múltiples condiciones.

Vamos a crear un marco de datos para la demostración:

Python3

# importing module
import pyspark
  
# importing sparksession from pyspark.sql module
from pyspark.sql import SparkSession
  
# creating sparksession and giving an app name
spark = SparkSession.builder.appName('sparkdf').getOrCreate()
  
# list  of students  data
data = [["1", "Amit", "DU"],
        ["2", "Mohit", "DU"],
        ["3", "rohith", "BHU"],
        ["4", "sridevi", "LPU"],
        ["1", "sravan", "KLMP"],
        ["5", "gnanesh", "IIT"]]
  
# specify column names
columns = ['student_ID', 'student_NAME', 'college']
  
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
  
# show dataframe
dataframe.show()

Producción:

Método 1: Usar Filter()

filter(): es una función que filtra las columnas / filas según la expresión o condición SQL.

Sintaxis: Dataframe.filter (Condición)

Donde se puede dar la condición Expresión logcal/expresión sql

Ejemplo 1: Filtrar condición única

Python3

dataframe.filter(dataframe.college == "DU").show()

Producción:

Ejemplo 2: Filtrar columnas con múltiples condiciones.

Python3

dataframe.filter((dataframe.college == "DU") &
                 (dataframe.student_ID == "1")).show()

Producción:

Método 2: Usar filtro y SQL Col

Aquí vamos a utilizar la función SQL col, esta función hace referencia al nombre de la columna del marco de datos con dataframe_object.col.

Sintaxis: Dataframe_obj.col(column_name).

Donde, Column_name se refiere al nombre de la columna del marco de datos.

Ejemplo 1: Filtrar columna con una sola condición.

Python3

# Using SQL col() function
from pyspark.sql.functions import col
dataframe.filter(col("college") == "DU").show()

Producción:

Ejemplo 2: Filtrar columna con múltiples condiciones.

Python3

# Using SQL col() function
from pyspark.sql.functions import col
  
  
dataframe.filter((col("college") == "DU") &
                 (col("student_NAME") == "Amit")).show()

Producción:

Método 3: Usar isin()

isin(): Esta función toma una lista como parámetro y devuelve la expresión booleana. La expresión booleana que se evalúa como verdadera si el valor de esta expresión está contenido en los valores evaluados de los argumentos

Sintaxis: isin(*lista)

Donde *list se extrae de list.

Ejemplo 1: Filtrar con una sola lista.

Python3

list = [1, 2]
dataframe.filter(dataframe.student_ID.isin(list)).show()

Producción:

Ejemplo 2: filtro con varias listas.

Python3

Id_list = [1, 2]
college_list = ['DU','IIT']
dataframe.filter((dataframe.student_ID.isin(Id_list)) |
                 (dataframe.college.isin(college_list))).show()

Producción:

Método 4: Usando Startswith y Endswith

Aquí usaremos las funciones «startwith» y «findswith» de pyspark.

comienza con(): esta función toma un carácter como parámetro y busca en la string de columnas cuya string comienza con el primer carácter si la condición se cumple y luego devuelve True.

Sintaxis: comienza con (carácter)

Ejemplo:

Python3

dataframe.filter(dataframe.student_NAME.startswith('s')).show()

Producción:

termina con(): esta función toma un carácter como parámetro y busca en la string de columnas cuya string termina con el carácter si la condición se cumple y luego devuelve True.

Sintaxis: termina con (carácter)

Ejemplo:

Python3

dataframe.filter(dataframe.student_NAME.endswith('t')).show()

Producción:

Aquí usará ambas funciones para filtrar el marco de datos:

Python3

dataframe.filter((dataframe.student_NAME.endswith('t')) &
                 (dataframe.student_NAME.startswith("A"))).show()

Producción:

Publicación traducida automáticamente

Artículo escrito por kumar_satyam 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 *