Contar filas según la condición en Pyspark Dataframe

En este artículo, discutiremos cómo contar filas según las condiciones en el marco de datos de Pyspark.

Para ello, vamos a utilizar estos métodos:

  • Usando la función where().
  • Usando la función filter().

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 students  data 
data =[["1","sravan","vignan"],
       ["2","ojaswi","vvit"],
       ["3","rohith","vvit"],
       ["4","sridevi","vignan"],
       ["1","sravan","vignan"], 
       ["5","gnanesh","iit"]]
  
# specify column names
columns = ['ID','NAME','college']
  
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data,columns)
  
print('Actual data in dataframe')
dataframe.show()

Producción:

Nota: si queremos obtener el recuento de todas las filas, podemos usar la función count()

Sintaxis: dataframe.count()

Donde, el marco de datos es el marco de datos de entrada de pyspark

Ejemplo: programa de Python para obtener el recuento de todas las filas

Python3

print('Total rows in dataframe')
dataframe.count()

Producción:

Total rows in dataframe
6

Método 1: usando where()

where(): esta cláusula se usa para verificar la condición y dar los resultados

Sintaxis : dataframe.where(condición)

Donde la condición es la condición del marco de datos

Ejemplo 1: Condición para obtener filas en el marco de datos donde ID = 1

Python3

# condition to get rows in dataframe 
# where ID =1
print('Total rows in dataframe where\
ID = 1 with where clause')
print(dataframe.where(dataframe.ID == '1').count())
  
print('They are  ')
dataframe.where(dataframe.ID == '1').show()

Producción:

Ejemplo 2: Condición para obtener filas en el marco de datos con múltiples condiciones.

Python3

# condition to get rows in dataframe
# where ID not equal to 1
print('Total rows in dataframe where\
ID except 1 with where clause')
  
print(dataframe.where(dataframe.ID != '1').count())
  
# condition to get rows in dataframe
# where college is equal to vignan
print('Total rows in dataframe where\
college is vignan with where clause')
print(dataframe.where(dataframe.college == 'vignan').count())
  
  
# condition to get rows in dataframe
# where id greater than 2
print('Total rows in dataframe where ID greater\
than 2 with where clause')
print(dataframe.where(dataframe.ID > 2).count())

Producción:

Total de filas en el marco de datos donde ID excepto 1 con cláusula where

4

Total de filas en el marco de datos donde la universidad está vignan con la cláusula where

3

Total de filas en el marco de datos donde ID mayor que 2 con cláusula where

3

Ejemplo 3: programa Python para múltiples condiciones

Python3

# condition to get rows in dataframe
# where ID not equal to 1 and name is sridevi
print('Total rows in dataframe where ID \
not equal to 1 and name is sridevi')
print(dataframe.where((dataframe.ID != '1') &
                      (dataframe.NAME == 'sridevi')
                     ).count())
  
# condition to get rows in dataframe
# where college is equal to vignan or iit
print('Total rows in dataframe where college is\
vignan or iit with where clause')
print(dataframe.where((dataframe.college == 'vignan') |
                      (dataframe.college == 'iit')).count())

Producción:

Filas totales en el marco de datos donde la ID no es igual a 1 y el nombre es sridevi

1

Total de filas en el marco de datos donde la universidad es vignan o iit con la cláusula where

4

Método 2: Usar filtro()

filter(): esta cláusula se usa para verificar la condición y dar los resultados, ambos son similares

Sintaxis : dataframe.filter (condición)

Ejemplo 1: programa de Python para obtener filas donde id = 1

Python3

# condition to get rows in
# dataframe where ID =1
print('Total rows in dataframe where\
ID = 1 with filter clause')
print(dataframe.filter(dataframe.ID == '1').count())
  
print('They are  ')
dataframe.filter(dataframe.ID == '1').show()

Producción:

Ejemplo 2: programa Python para múltiples condiciones

Python3

# condition to get rows in dataframe
# where ID not equal to 1 and name is sridevi
print('Total rows in dataframe where ID not\
equal to 1 and name is sridevi')
print(dataframe.filter((dataframe.ID != '1') &
                       (dataframe.NAME == 'sridevi')).count())
  
# condition to get rows in dataframe
# where college is equal to vignan or iit
print('Total rows in dataframe where college\
is vignan or iit with filter clause')
print(dataframe.filter((dataframe.college == 'vignan') |
                       (dataframe.college == 'iit')).count())

Producción:

Filas totales en el marco de datos donde la ID no es igual a 1 y el nombre es sridevi

1

Filas totales en el marco de datos donde la universidad es vignan o iit con cláusula de filtro

4

Publicación traducida automáticamente

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