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