Ordene las columnas de PySpark DataFrame por orden ascendente o descendente

En este artículo, vamos a ordenar las columnas del marco de datos en el archivo pyspark. Para esto, estamos usando las funciones sort() y orderBy() en orden ascendente y descendente.

Vamos a crear un marco de datos de muestra.

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 employee data
data = [["1", "sravan", "company 1"],
        ["2", "ojaswi", "company 1"],
        ["3", "rohith", "company 2"],
        ["4", "sridevi", "company 1"],
        ["1", "sravan", "company 1"],
        ["4", "sridevi", "company 1"]]
  
# specify column names
columns = ['Employee_ID', 'Employee NAME', 'Company']
  
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
  
# display data in the dataframe
dataframe.show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          1|       sravan|company 1|
|          2|       ojaswi|company 1|
|          3|       rohith|company 2|
|          4|      sridevi|company 1|
|          1|       sravan|company 1|
|          4|      sridevi|company 1|
+-----------+-------------+---------+

Usando la función ordenar()

La función de clasificación se utiliza para clasificar la columna del marco de datos.

Sintaxis : dataframe.sort([‘nombre de columna’], ascendente=Verdadero).show()

Ejemplo 1: Organizar en orden ascendente Usando Sort() con una columna

Ordene los datos según el nombre del empleado en orden creciente

Python3

# sort the dataframe based on 
# employee name column in ascending order
dataframe.sort(['Employee NAME'],
               ascending = True).show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          1|       sravan|company 1|
|          1|       sravan|company 1|
|          2|       ojaswi|company 1|
|          3|       rohith|company 2|
|          4|      sridevi|company 1|
|          4|      sridevi|company 1|
+-----------+-------------+---------+

Ordene los datos según el nombre del empleado en orden decreciente:

Sintaxis : dataframe.sort([‘nombre de columna’], ascendente = Falso).show()

Código:

Python3

# sort the dataframe based on 
# employee name column in descending order
dataframe.sort(['Employee NAME'],
               ascending = False).show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          4|      sridevi|company 1|
|          4|      sridevi|company 1|
|          1|       sravan|company 1|
|          1|       sravan|company 1|
|          3|       rohith|company 2|
|          2|       ojaswi|company 1|
+-----------+-------------+---------+

Ejemplo 2: uso de Sort() con varias columnas

Vamos a ordenar el marco de datos según la identificación del empleado y el nombre del empleado en orden ascendente.

Python3

# sort the dataframe based on employee ID
# and employee Name columns in ascending order
dataframe.sort(['Employee_ID','Employee NAME'],
               ascending = True).show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          1|       sravan|company 1|
|          1|       sravan|company 1|
|          2|       ojaswi|company 1|
|          3|       rohith|company 2|
|          4|      sridevi|company 1|
|          4|      sridevi|company 1|
+-----------+-------------+---------+

Vamos a ordenar el marco de datos según la identificación del empleado, la empresa y el nombre del empleado en orden descendente

Python3

# sort the dataframe based on employee ID ,
# company and employee Name columns in descending order
dataframe.sort(['Employee_ID','Employee NAME',
                'Company'], ascending = False).show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          4|      sridevi|company 1|
|          4|      sridevi|company 1|
|          3|       rohith|company 2|
|          2|       ojaswi|company 1|
|          1|       sravan|company 1|
|          1|       sravan|company 1|
+-----------+-------------+---------+

Ejemplo 3: Ordenar por métodos ASC.

Método ASC de la función Columna, devuelve una expresión de clasificación basada en el orden ascendente del nombre de columna dado.

Python3

dataframe.sort(dataframe.Employee_ID.asc()).show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          1|       sravan|company 1|
|          1|       sravan|company 1|
|          2|       ojaswi|company 1|
|          3|       rohith|company 2|
|          4|      sridevi|company 1|
|          4|      sridevi|company 1|
+-----------+-------------+---------+

Ejemplo 4: Ordenar por métodos DESC.

DESC de la función de columna, devuelve una expresión de clasificación basada en el orden descendente del nombre de columna dado.

Python3

dataframe.sort(dataframe.Employee_ID.desc()).show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          4|      sridevi|company 1|
|          4|      sridevi|company 1|
|          3|       rohith|company 2|
|          2|       ojaswi|company 1|
|          1|       sravan|company 1|
|          1|       sravan|company 1|
+-----------+-------------+---------+

Uso de la función Ordenar por()

La función orderBy() ordena por una o más columnas. Por defecto, ordena en orden ascendente.

Sintaxis: orderBy(*columnas, ascendente=Verdadero)

Parámetros:

  • cols→ Columnas por las que se necesita realizar la clasificación.
  • ascendente → Valor booleano para decir que la clasificación se debe realizar en orden ascendente

Ejemplo 1: ascendente para una columna

Programa de Python para ordenar el marco de datos según la identificación del empleado en orden ascendente

Python3

# sort the dataframe based on employee I
# columns in descending order
dataframe.orderBy(['Employee_ID'],
                  ascending=False).show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          4|      sridevi|company 1|
|          4|      sridevi|company 1|
|          3|       rohith|company 2|
|          2|       ojaswi|company 1|
|          1|       sravan|company 1|
|          1|       sravan|company 1|
+-----------+-------------+---------+

Programa de Python para ordenar el marco de datos según la identificación del empleado en orden descendente

Python3

# sort the dataframe based on
# Employee ID in descending order
dataframe.orderBy(['Employee_ID'],
                  ascending = False).show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          4|      sridevi|company 1|
|          4|      sridevi|company 1|
|          3|       rohith|company 2|
|          2|       ojaswi|company 1|
|          1|       sravan|company 1|
|          1|       sravan|company 1|
+-----------+-------------+---------+

Ejemplo 2: Ascender varias columnas

Ordene el marco de datos en función de las columnas ID de empleado y Nombre de empleado en orden descendente utilizando orderBy.

Python3

# sort the dataframe based on employee ID 
# and employee Name columns in descending order
dataframe.orderBy(['Employee ID','Employee NAME'],
                  ascending = False).show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          4|      sridevi|company 1|
|          4|      sridevi|company 1|
|          3|       rohith|company 2|
|          2|       ojaswi|company 1|
|          1|       sravan|company 1|
|          1|       sravan|company 1|
+-----------+-------------+---------+

Ordene el marco de datos según la identificación del empleado y las columnas de nombre del empleado en orden ascendente

Python3

# sort the dataframe based on employee ID 
# and employee Name columns in ascending order
dataframe.orderBy(['Employee_ID','Employee NAME'],
                  ascending =True).show()

Producción:

+-----------+-------------+---------+
|Employee_ID|Employee NAME|  Company|
+-----------+-------------+---------+
|          1|       sravan|company 1|
|          1|       sravan|company 1|
|          2|       ojaswi|company 1|
|          3|       rohith|company 2|
|          4|      sridevi|company 1|
|          4|      sridevi|company 1|
+-----------+-------------+---------+

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *