Pyspark - Función Variance_STDDEV

Pyspark - Función Variance_STDDEV
Después de dividir las filas en el marco de datos de Pyspark, es posible devolver la varianza y la desviación estándar en cada partición. Al usar algunas funciones agregadas en una ventana de partición, es posible devolver la varianza y la desviación estándar.

Primero, veremos cómo dividir el marco de datos en Pyspark.

Dividir

Es posible particionar las filas en el marco de datos utilizando la función de la ventana. Está disponible en el pyspark.sql.ventana módulo. Hay dos pasos para dividir las filas en un marco de datos de Pyspark.

Pasos:

  1. Cree un marco de datos de Pyspark que tenga algunos valores similares en al menos una columna.
  2. Participe los datos utilizando el método PartitionBy () disponible en la función de la ventana.

Sintaxis:

partición = ventana.Partitionby ("columna")

Podemos ordenar los datos particionados con la columna particionada o cualquier otra columna.

Creemos DataFrame.

Ejemplo:

Aquí, creamos un marco de datos Pyspark que tiene 5 columnas: ['temas_id', 'nombre', 'edad', 'tecnología1', 'tecnología2'] con 10 filas.

importar pyspark
de Pyspark.SQL Import Sparksession
de Pyspark.sql.Importación de funciones *
Spark_app = Sparksession.constructor.nombre de la aplicación('_').getorcreate ()
Estudiantes = [(4, 'Sravan', 23, 'Php', 'Pruebas'),
(4, 'Sravan', 23, 'Php', 'Pruebas'),
(46, 'Mounika', 22, '.Net ',' html '),
(4, 'Deepika', 21, 'Oracle', 'html'),
(46, 'Mounika', 22, 'Oracle', 'Prueba'),
(12, 'Chandrika', 22, 'Hadoop', 'C#'),
(12, 'Chandrika', 22, 'Oracle', 'Prueba'),
(4, 'Sravan', 23, 'Oracle', 'C#'),
(4, 'Deepika', 21, 'Php', 'C#'),
(46, 'Mounika', 22, '.Net ',' prueba ')
]
dataFrame_OBJ = Spark_App.creatataFrame (estudiantes, ['temas_id', 'nombre', 'edad', 'tecnología1', 'tecnología2'])
imprimir ("---------- DataFrame ----------")
dataframe_obj.espectáculo()

Producción:

Función de ventana de varianza de Pyspark ()

La varianza () en la función de la ventana se usa para devolver la varianza en cada partición. Puede ser posible devolver la varianza después de particionar el marco de datos.

Sintaxis:

dataframe_obj.WithColumn ("Variance", Variance (col ("columna")).sobre (partición))

Parámetro:

Varianza (col ("columna"))

Aquí, la función Variance () toma el nombre de la columna como parámetro. Devuelve la varianza en esta columna en cada partición.

Agregamos el resultado en una columna con nombre de varianza utilizando la función withColumn ().

Ejemplo 1:

Ahora, tenemos un cuadro de datos (creado anteriormente). Vamos a dividirlo en función de la columna Technology1 y obtener la varianza en la columna SUSPET_ID en cada partición.

# Importar la función de la ventana
de Pyspark.sql.Ventana de importación de ventana
#Importa la varianza y el col de Pyspark.sql.funciones
de Pyspark.sql.Varianza de importación de funciones, col
#Partition El marcado de datos basado en los valores en la columna Technology1
partición = ventana.Partitionby ("Technology1")
imprimir ("---------- DataFrame dividido ----------")
#Return la varianza en la columna temas_id para cada partición
dataframe_obj.WithColumn ("Variance", Variance (col ("temas_id")).sobre (partición)).espectáculo()

Producción:

Explicación:

El número total de particiones es 4.

Partición 1:

El .La red ocurrió dos veces en la primera partición. La varianza de la columna Sujeto_id es 0.0.

Partición 2:

Hadoop ocurrió una vez en la segunda partición. Entonces, la varianza es nula.

Partición 3:

Oracle ocurrió cuatro veces en la tercera partición.

La varianza de la columna Sujeto_id es 401.0.

Partición 4:

PHP ocurrió tres veces en la cuarta partición.

La varianza de la columna Sujeto_id es 0.0.

Ejemplo 2:

Ahora, tenemos un cuadro de datos (creado anteriormente). Vamos a dividirlo en función de la columna Technology1 y obtener la varianza en la columna de edad en cada partición.

# Importar la función de la ventana
de Pyspark.sql.Ventana de importación de ventana
#Importa la varianza y el col de Pyspark.sql.funciones
de Pyspark.sql.Varianza de importación de funciones, col
#Partition El marcado de datos basado en los valores en la columna Technology1
partición = ventana.Partitionby ("Technology1")
imprimir ("---------- DataFrame dividido ----------")
#Realizar la varianza en la columna de edad para cada partición
dataframe_obj.WithColumn ("Variance", Variance (col ("edad")).sobre (partición)).espectáculo()

Producción:

Explicación:

El número total de particiones es 4.

Partición 1:

El .La red ocurrió dos veces en la primera partición. La varianza de la columna de edad es 0.0.

Partición 2:

Hadoop ocurrió una vez en la segunda partición. Entonces, la varianza es nula.

Partición 3:

Oracle ocurrió cuatro veces en la tercera partición.

La varianza de la columna de edad es 0.666.

Partición 4:

PHP ocurrió tres veces en la cuarta partición.

La varianza de la columna de edad es 1.333.

Función de ventana Pyspark stddev ()

El stddev () en la función de la ventana se usa para devolver la desviación estándar en cada partición. Puede ser posible devolver la desviación estándar después de dividir el DataFrame.

Sintaxis:

dataframe_obj.WithColumn ("Desviación estándar", stddev (col ("columna")).sobre (partición))

Parámetro:

stddev (col ("columna"))

Aquí, el stddev () toma el nombre de la columna como parámetro. Devuelve la desviación estándar en esta columna en cada partición.

Agregamos el resultado a una columna llamada Desviation estándar utilizando la función withColumn ().

Ejemplo 1:

Ahora, tenemos un cuadro de datos (creado anteriormente). Vamos a dividirlo en función de la columna Technology1 y obtener la desviación estándar en la columna TEMPLE_ID en cada partición.

# Importar la función de la ventana
de Pyspark.sql.Ventana de importación de ventana
#Importa el stddev y el col de Pyspark.sql.funciones
de Pyspark.sql.Funciones importar stddev, col
#Partition El marcado de datos basado en los valores en la columna Technology1
partición = ventana.Partitionby ("Technology1")
imprimir ("---------- DataFrame dividido ----------")
#Return la desviación satndard en la columna temas_id para cada partición
dataframe_obj.WithColumn ("Desviación estándar", stddev (col ("temas_id")).sobre (partición)).espectáculo()

Producción:

Explicación:

El número total de particiones es 4.

Partición 1:

El .La red ocurrió dos veces en la primera partición. La desviación estándar de la columna temas_id es 0.0.

Partición 2:

Hadoop ocurrió una vez en la segunda partición. Entonces, la desviación estándar es nula.

Partición 3:

Oracle ocurrió cuatro veces en la tercera partición.

La desviación estándar de la columna temas_id es 20.024984.

Partición 4:

PHP ocurrió tres veces en la cuarta partición.

La desviación estándar de la columna temas_id es 0.0.

Ejemplo 2:

Ahora, tenemos un cuadro de datos (creado anteriormente). Vamos a dividirlo en función de la columna Technology1 y obtener la desviación estándar en la columna de edad en cada partición.

# Importar la función de la ventana
de Pyspark.sql.Ventana de importación de ventana
#Importa el stddev y el col de Pyspark.sql.funciones
de Pyspark.sql.Funciones importar stddev, col
#Partition El marcado de datos basado en los valores en la columna Technology1
partición = ventana.Partitionby ("Technology1")
imprimir ("---------- DataFrame dividido ----------")
#Realización de la columna Satndard Desviation in Age para cada partición
dataframe_obj.WithColumn ("Desviación estándar", stddev (col ("edad")).sobre (partición)).espectáculo()

Producción:

Explicación:

El número total de particiones es 4.

Partición 1:

El .La red ocurrió dos veces en la primera partición. La desviación estándar de la columna de edad es 0.0.

Partición 2:

Hadoop ocurrió una vez en la segunda partición. Entonces, la desviación estándar es nula.

Partición 3:

Oracle ocurrió cuatro veces en la tercera partición.

La desviación estándar de la columna de edad es 0.8164.

Partición 4:

PHP ocurrió tres veces en la cuarta partición.

La desviación estándar de la columna de edad es 1.1547.

Conclusión

En este tutorial de partición de Pyspark, aprendimos cómo devolver la varianza en cada ventana particionada utilizando la función Variance () y la desviación estándar en cada ventana particionada utilizando la función stddev (). Agregamos el resultado al marco de datos existente como una nueva columna. Asegúrese de importar la varianza y el stddev del Pyspark.sql.módulo de funciones.