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