Pyspark Partition Un marco de datos
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. Habrá dos pasos para dividir las filas en un marco de datos de Pyspark.
Pasos
Sintaxis
partición = ventana.Partitionby ("columna")Podemos ordenar los datos particionados con la columna particionada o cualquier otra columna. Creemos DataFrame.
Ejemplo
Aquí, crearemos un marcador de datos Pyspark que tenga 5 columnas: ['Tema_id', 'Nombre', 'Age', 'Technology1', 'Technology2'] con 10 filas.
Producción:
Función de ventana Pyspark Sum ()
La suma () en la función de la ventana se usa para devolver la suma total de los valores en cada partición. Por lo tanto, es posible devolver una suma después de dividir el DataFrame.
Sintaxis
dataframe_obj.WithColumn ("suma", suma (col ("columna")).sobre (partición))Parámetro:
suma (col ("columna"))Aquí el suma() La función toma el nombre de la columna como parámetro. Entonces, devuelve la suma de valores en esta columna en cada partición. Agregamos el resultado a una columna de suma usando el WithColumn () función.
Ejemplo 1
Ahora, tenemos un DataFrame (creado anteriormente). Vamos a dividirlo en función de la columna Technology1 y obtener la suma total de todos los valores en la columna TEMPLEY_ID en cada partición.
Producción:
Explicación
Partitaciones totales: 4
Partición 1:
.La red ocurrió dos veces en la primera partición. Y la suma de los valores temas_id es 46+46 = 92.
Partición 2:
Hadoop ocurrió una vez en la segunda partición. Entonces, la suma es 12.
Partición 3:
Oracle ocurrió cuatro veces en la tercera partición.
Y la suma de los valores de temas_id es 4+46+12+4 = 66.
Partición 4:
PHP ocurrió tres veces en la cuarta partición.
Y la suma de los valores temas_id es 4+4+4 = 12.
Ejemplo 2
Ahora, tenemos un DataFrame (creado anteriormente). Vamos a dividirlo en función de la columna Technology1 y obtener la suma total de todos los valores en la columna de edad en cada partición.
Producción:
Explicación
Partitaciones totales: 4
Partición 1:
.La red ocurrió dos veces en la primera partición. Y la suma de los valores de edad es 22+22 = 92.
Partición 2:
Hadoop ocurrió una vez en la segunda partición. Entonces, la suma es 22.
Partición 3:
Oracle ocurrió cuatro veces en la tercera partición.
Y la suma de los valores de edad es 21+22+22+23 = 88.
Partición 4:
PHP ocurrió tres veces en la cuarta partición.
Y la suma de los valores de edad es 23+23+21 = 67.
Función de ventana pyspark avg ()
La función avg () en la ventana se usa para devolver el promedio total de valores en cada partición. Por lo tanto, es posible devolver el promedio después de dividir el marco de datos.
Sintaxis
dataframe_obj.WithColumn ("promedio", avg (col ("columna")).sobre (partición))Parámetro:
AVG (col ("columna"))Aquí, avg () toma el nombre de la columna como parámetro. Entonces, devuelve el promedio de valores en esta columna en cada partición. Estamos agregando el resultado a la columna promedio utilizando el WithColumn () función.
Ejemplo 1
Ahora, tenemos un DataFrame (creado anteriormente). Vamos a dividirlo en función de la columna Technology1 y obtener el promedio total de todos los valores en la columna TEMPLE_ID en cada partición.
Producción:
Explicación
Partitaciones totales: 4
Partición 1:
.La red ocurrió dos veces en la primera partición. Y el promedio de los valores temas_id es (46+46)/2 = 46.0.
Partición 2:
Hadoop ocurrió una vez en la segunda partición. Entonces, el promedio es de 12.0.
Partición 3:
Oracle ocurrió cuatro veces en la tercera partición.
Y el promedio de los valores temas_id es (4+46+12+4)/4 = 16.5.
Partición 4:
PHP ocurrió tres veces en la cuarta partición.
Y el promedio de los valores temas_id es (4+4+4)/3 = 4.0.
Ejemplo 2
Ahora, tenemos un DataFrame (creado anteriormente). Vamos a dividirlo en función de la columna Technology1 y obtener el promedio total de todos los valores en la columna de edad en cada partición.
Producción:
Explicación
Partitaciones totales: 4
Partición 1:
.La red ocurrió dos veces en la primera partición. Y el valor de edad promedio es (22+22)/2 = 22.0.
Partición 2:
Hadoop ocurrió una vez en la segunda partición. Entonces, el promedio es de 22.0.
Partición 3:
Oracle ocurrió cuatro veces en la tercera partición.
Y la edad promedio es (21+22+22+23)/4 = 22.0.
Partición 4:
PHP ocurrió tres veces en la cuarta partición.
Y el valor de edad promedio es (23+23+21)/3 = 22.333.
Conclusión
En este tutorial de partición de Pyspark, vimos cómo devolver la suma de valores en cada ventana particionada utilizando el suma() función y los valores promedio en cada ventana particionada utilizando la función avg (). Agregamos el resultado al marco de datos existente como una nueva columna. También es posible obtener el promedio similar al avg () función usando significar(). Las cosas importantes significan de pyspark.sql.funciones módulo y simplemente asegúrese de tener que importar suma y promedio del mismo módulo.