Pyspark - Sumdistinct & Countdistint

Pyspark - Sumdistinct & Countdistint
En Python, Pyspark es un módulo Spark utilizado para proporcionar un tipo similar de procesamiento como Spark usando DataFrame.

Pyspark - SumDistinct ()

SumDistinct () en Pyspark Devuelve el valor total distintivo (suma) de una columna particular en el marco de datos. Devolverá la suma considerando solo valores únicos. No tomará valores duplicados para formar una suma.

Antes de eso, tenemos que crear Pyspark DataFrame para la demostración.

Ejemplo:

Crearemos un marco de datos con 5 filas y 6 columnas y lo mostraremos usando el método show ().

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.69, 'Peso': 67, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 16, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.79, 'Peso': 28, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Data DataFrame
df.espectáculo()

Producción:

En el marcador de datos de Pyspark anterior, observamos que en la columna de la edad 16 ocurrió 2 veces, en la columna de altura 5.79 y 3.69 ocurrieron dos veces, y en el peso de la columna 67 y 28 ocurrieron dos veces.

Entonces el sumdistinct () considera estos valores duplicados como un valor único y forma la suma dentro de la columna.

Usando el método select ()

Podemos obtener el valor total distintivo de la columna en la estructura de datos utilizando el método select (). Usando el método SumDistinct (), podemos obtener el valor total distintivo de la columna. Para usar este método, tenemos que importarlo de Pyspark.sql.Módulo de funciones, y finalmente, podemos usar el método Collect () para obtener la suma distinta de la columna

Sintaxis:

df.SELECT (SUMDISTINCT ('column_name'))

Dónde,

  1. DF es la entrada Pyspark DataFrame
  2. column_name es la columna para obtener el valor de suma distintivo

Si queremos devolver el valor total distinto de varias columnas, debemos usar el método SumDistinct () dentro del método select () especificando el nombre de la columna separado por una coma.

Sintaxis:

df.SELECT (SUMDISTINCT ('column_name'), sumdistinct ('column_name'), .. ., sumdistinct ('column_name'))

Dónde,

  1. DF es la entrada Pyspark DataFrame
  2. column_name es la columna para obtener el valor de suma distintivo

Ejemplo 1: Una sola columna

Este ejemplo obtendrá el valor total distintivo de la columna de altura en el marco de datos de Pyspark.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#IMPORT SUMDISTINCT () Función
de Pyspark.sql.Funciones Importar sumdistinct
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.69, 'Peso': 67, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 16, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.79, 'Peso': 28, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Realización de la suma distinta de la columna de altura
df.SELECCIONAR (SUMDISTINCT ('altura')).recolectar()

Producción:

[Fila (suma (altura distinta) = 12.27)]

El ejemplo anterior devuelve el valor total distintivo (suma) de la columna de altura.

Ejemplo 2: múltiples columnas

Este ejemplo obtendrá el valor total distintivo de las columnas de altura, edad y peso en el marco de datos de Pyspark.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.69, 'Peso': 67, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 16, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.79, 'Peso': 28, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Realizar la suma distintiva de las columnas de altura, edad y peso
df.SELECT (SUMDISTINCT ('altura'), sumdistinct ('edad'), sumdistinct ('peso'))).recolectar()

Producción:

[Fila (suma (altura distinta) = 12.27, suma (edad distinta) = 85, suma (peso distinto) = 112)]

El ejemplo anterior devuelve el valor total distintivo (suma) de las columnas de altura, edad y peso.

Pyspark - CountDistinct ()

countDistinct () en Pyspark Devuelve el distinto número de valores (recuento) de una columna particular en el marco de datos. Devolverá el recuento considerando solo valores únicos. No se necesitará valores duplicados para formar un recuento.

Antes de eso, tenemos que crear Pyspark DataFrame para la demostración.

Ejemplo:

Crearemos un marco de datos con 5 filas y 6 columnas y lo mostraremos usando el método show ().

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.69, 'Peso': 67, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 16, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.79, 'Peso': 28, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Data DataFrame
df.espectáculo()

Producción:

En el marcador de datos de Pyspark anterior, observamos que en la columna de la edad 16 ocurrió 2 veces, en la columna de altura 5.79 y 3.69 ocurrieron dos veces, y en el peso de la columna 67 y 28 ocurrieron dos veces.

Entonces, el countDistinct () considera estos valores duplicados como valores únicos y forma el recuento en la columna.

Usando el método select ()

Podemos obtener el recuento distintivo de la columna en la estructura de datos utilizando el método select (). Usando el método countDistint (), podemos obtener un recuento distinto de filas de la columna. Para usar este método, tenemos que importarlo de Pyspark.sql.Módulo de funciones, y finalmente, podemos usar el método Collect () para obtener el recuento distinto de la columna

Sintaxis:

df.SELECT (countDistinct ('column_name'))

Dónde,

  1. DF es la entrada Pyspark DataFrame
  2. column_name es la columna para obtener el recuento distintivo.

Si queremos devolver el recuento distinto de varias columnas, debemos usar el método CountDistint () dentro del método select () especificando el nombre de la columna separado por una coma.

Sintaxis:

df.SELECT (countDistinct ('column_name'), countDistinct ('column_name'), .. ., countDistinct ('column_name'))

Dónde,

  1. DF es la entrada Pyspark DataFrame
  2. column_name es la columna para obtener el número distintivo de filas.

Ejemplo 1: columna única

Este ejemplo obtendrá el recuento distinto de la columna de altura en el marco de datos de Pyspark.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
Función #import countDistint ()
de Pyspark.sql.Funciones de importación CountDistinct
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.69, 'Peso': 67, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 16, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.79, 'Peso': 28, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Realizar el recuento distinto de la columna de altura
df.Seleccionar (CountDistinct ('Altura')).recolectar()

Producción:

[Fila (recuento (altura distinta) = 3)]

En el ejemplo anterior, se devuelve el recuento distinto de la columna de altura.

Ejemplo 2: múltiples columnas

Este ejemplo obtendrá el recuento distinto de las columnas de altura, edad y peso en el marco de datos de Pyspark.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
Función #import countDistint ()
de Pyspark.sql.Funciones de importación CountDistinct
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.69, 'Peso': 67, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 16, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.79, 'Peso': 28, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Realización del recuento distinto de las columnas de altura, edad y peso
df.SELECT (countDistinct ('altura'), countDistinct ('edad'), countDistinct ('peso'))).recolectar()

Producción:

[Fila (recuento (altura distinta) = 3, recuento (edad distinta) = 4, recuento (peso distinto) = 3)]

El ejemplo anterior devuelve el recuento distinto de las columnas de altura, edad y peso.

Conclusión:

Discutimos cómo obtener el valor de suma (total) distintiva usando SumDistinct () y el distinto número de filas (Count) usando CountDistinct () del Pyspark DataFrame usando el método Select ().