En Pyspark, 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.
La ventaja de la partición es lograr la consistencia y la agrupación de los datos. Después de realizar la partición, podemos establecer los rangos en las filas en cada partición usando la función de rango ().
Es posible dividir las filas en un marcado de datos basado en los valores en una columna particular. Entonces, todos los valores similares se establecen en cada partición.
función de ventana rank ()
El rango en Pyspark es una función de ventana que establece los rangos en las filas en cada partición.
El rango comienza a partir de 1, y si algún valor es igual en dos o más filas, entonces se asignará el mismo rango. Sin embargo, para la siguiente fila, el rango será el siguiente número de contar desde las filas atadas (filas con el mismo rango).
Aquí, los valores son de la columna donde especificamos la columna dentro OrderBy (). Entonces, según los valores de esta columna, rango() verifica y asigna el número de rango.
La cosa principal es rango() no está disponible directamente. Tenemos que importarlo del pyspark.sql.funciones módulo.
Sintaxis para importar módulo
de Pyspark.sql.Rango de importación de funcionesDe lo contrario, también podemos hacer esto para importar todos los métodos de este módulo.
de Pyspark.sql.Importación de funciones *Debemos seguir los pasos a continuación para realizar la partición y aplicar el rango en datos particionados.
Pasos:
Sintaxis:
partición = ventana.Partitionby ("columna").Orderby ("columna") Podemos ordenar los datos particionados con la columna particionada o cualquier otra columna.
Ahora, usando el encima() función en las filas particionadas, puede usar el rango() función. Entonces, agregaremos una columna para almacenar el número de fila usando el WithColumn () función.
Sintaxis:
Entonces, el nombre especifica el nombre de la fila aquí, y DataFrame_obj es nuestro Pyspark DataFrame. Implementemos el código.
Ejemplo 1: Tecnología de rango1 por temas_id
Aquí, crearemos un marcador de datos Pyspark que tenga 5 columnas: ['temas_id', 'nombre', 'edad', 'tecnología1', 'tecnología2'] con 10 filas y dividirse en las filas basadas en las filas basadas Tecnología1 Usando la función de ventana.
Finalmente, daremos rangos a las filas en todas las particiones agregando una nueva columna llamada RANGO.
importar pysparkProducción:
Explicación
La primera salida representa los datos reales presentes en DataFrame. En la segunda salida, la partición se realiza en base a la Tecnología1 columna.
Partitaciones totales: 4
Partición 1:
.La red ocurrió dos veces en la primera partición. Los valores en la columna Sujeto_ID son los mismos. Por lo tanto, la función de rango () devuelve el mismo rango para ambos .Valores netos.
Partición 2:
Hadoop ocurrió una vez en la segunda partición. Entonces, el rango es 1.
Partición 3:
Partición 4:
PHP ocurrió tres veces en la cuarta partición, y los valores en la columna Sujeto_ID son los mismos para todos. Por lo tanto, el rango es 1 para todo PHP.
Ejemplo 2: Rank Technology2 por temas_id
Aquí, dividiremos las filas basadas en Tecnología2 Usando la función de ventana. Finalmente, daremos rangos a las filas basadas en la columna TIEÑO_ID en todas las particiones agregando una nueva columna llamada "RANGO".
(Si no creó el Pyspark DataFrame, cree utilizando el primer ejemplo.)
# Importar la función de la ventanaProducción:
Explicación
La salida representa los datos reales presentes en DataFrame.
En la segunda salida, la partición se realiza en base a la Tecnología2 columna y ordenado basado en la columna asign_id.
Partitiones totales: 3
Partición 1:
C# ocurrió tres veces en la primera partición. Los dos primeros valores en la columna Sujet_ID son los mismos. Por lo tanto, la función de rango () devuelve el mismo rango 1 para los dos primeros C#, y para el tercer C#, el rango es 3.
Partición 2:
HTML ocurrió dos veces en la segunda partición, y los valores de asunto_id son diferentes para estos dos. Entonces, el rango 1 se asigna para el primer HTML, y el rango 2 está asignado para el segundo.
Partición 3:
Ejemplo 3: Rango de tecnología2 por edad
Aquí, dividiremos las filas basadas en Tecnología2 Usando la función de ventana.
Finalmente, daremos filas a las filas basadas en la columna de edad en todas las particiones agregando una nueva columna llamada "RANGO".
(Si no creó el Pyspark DataFrame, cree utilizando el primer ejemplo.)
# Importar la función de la ventanaProducción:
Explicación
La salida representa los datos reales presentes en DataFrame. En la segunda salida, la partición se realiza en base a la Tecnología2 columna y ordenado según la columna de edad.
Partitiones totales: 3
Partición 1:
C# ocurrió tres veces en la primera partición. Y todos los valores en la columna de edad son diferentes. Por lo tanto, la función de rango () devuelve los rangos 1, 2 y 3 para tres valores de C#.
Partición 2:
HTML ocurrió dos veces en la primera partición. Todos los valores en la columna de edad son diferentes. Por lo tanto, la función de rango () devuelve los rangos 1 y 2 para dos valores HTML.
Partición 3:
Conclusión
Discutimos la división de las filas en el marco de datos de Pyspark y establecimos el rango en cada partición utilizando la función de ventana Rank (). El rango en Pyspark es una función de ventana que establece los rangos en las filas en cada partición. Asegúrese de usar este comando mientras usa esta función de Pyspark.sql.Rango de importación de funciones.