Contar valores por condición en PySpark Dataframe

En este artículo, vamos a contar el valor de las columnas del marco de datos de Pyspark por condición.

Creando Dataframe para 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 employee data with 10 row values
data = [["1", "sravan", "IT", 45000],
        ["2", "ojaswi", "IT", 30000],
        ["3", "bobby", "business", 45000],
        ["4", "rohith", "IT", 45000],
        ["5", "gnanesh", "business", 120000],
        ["6", "siva nagulu", "sales", 23000],
        ["7", "bhanu", "sales", 34000],
        ["8", "sireesha", "business", 456798],
        ["9", "ravi", "IT", 230000],
        ["10", "devi", "business", 100000],
        ]
 
# specify column names
columns = ['ID', 'NAME', 'sector', 'salary']
 
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
 
# display dataframe
dataframe.show()

Producción:

Método 1: Usando select(), where(), count()

where(): where se usa para devolver el marco de datos en función de la condición dada seleccionando las filas en el marco de datos o extrayendo las filas o columnas particulares del marco de datos. Puede tomar una condición y devuelve el marco de datos.

Sintaxis: where(dataframe.column condition)

Dónde, 

  • Aquí el marco de datos es el marco de datos de entrada
  • columna es el nombre de la columna donde tenemos que plantear una condición

count(): esta función se usa para devolver la cantidad de valores / filas en un marco de datos

Sintaxis: dataframe.count()

Ejemplo 1: Programa de Python para contar valores en la columna NOMBRE donde ID mayor que 5

Python3

# count values in NAME column
# where ID greater than 5
dataframe.select('NAME').where(dataframe.ID>5).count()

Producción:

5

 
Ejemplo 2: programa de Python para contar valores en todas las columnas donde ID mayor que 3 y sector = TI

Python3

# count values in all column count
# where ID greater than 3 and sector = IT
dataframe.select().where((dataframe.ID>3) &
                         (dataframe.sector=='IT')).count()

Producción:

2

Método 2: Usando filter(), count()

filter(): se utiliza para devolver el marco de datos en función de la condición dada al eliminar las filas en el marco de datos o al extraer las filas o columnas particulares del marco de datos. Puede tomar una condición y devuelve el marco de datos.

Sintaxis: filter(dataframe.column condition)

Dónde,

  • Aquí el marco de datos es el marco de datos de entrada
  • columna es el nombre de la columna donde tenemos que plantear una condición

Ejemplo 1: programa de Python para contar la columna ID donde ID = 4

Python3

# count ID column  where ID =4
dataframe.select('ID').where(dataframe.ID == 4).count()

Producción:

1

Ejemplo 2: Programa de Python para contar la columna de ID donde ID > 4 y el sector es ventas o TI

Python3

# count ID column  where ID > 4 
# and sector is sales or IT
dataframe.select('ID').where((dataframe.ID>4) &
                             ((dataframe.sector=='sales')|
                              (dataframe.sector=='IT'))).count()

Producción:

3

Publicación traducida automáticamente

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