PySpark – Ordenar por múltiples columnas

En este artículo, veremos cómo ordenar varias columnas en PySpark DataFrames a través de Python.

Cree el marco de datos para la demostración:

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"],
        ["5", "bobby", "company 1"]]
  
# specify column names
columns = ['ID', 'NAME', 'Company']
  
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
  
dataframe.show()

Producción:

orderby significa que vamos a ordenar el marco de datos por varias columnas en orden ascendente o descendente. podemos hacer esto usando los siguientes métodos.

Método 1: Usando orderBy()

Esta función devolverá el marco de datos después de ordenar las múltiples columnas. Se ordenará primero según el nombre de columna dado.

Sintaxis :

  • Orden ascendente: dataframe.orderBy([‘columna1′,’columna2′,……,’columna n’], ascendente=Verdadero).show()
  • Orden descendente: dataframe.orderBy([‘columna1′,’columna2′,……,’columna n’], ascendente=Falso).show()

dónde:

  • dataframe es el marco de datos de entrada de Pyspark
  • ascending=True especifica ordenar el marco de datos en orden ascendente
  • ascending=False especifica ordenar el marco de datos en orden descendente

Ejemplo 1 : ordene el marco de datos de PySpark en orden ascendente con orderBy().

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"],
        ["5", "bobby", "company 1"]]
  
# specify column names
columns = ['ID', 'NAME', 'Company']
  
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
  
# orderBy dataframe in asc order
dataframe.orderBy(['Name', 'ID', 'Company'],
                  ascending=True).show()

Producción:

Ejemplo 2: ordene el marco de datos de PySpark en orden descendente con orderBy().

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"],
        ["5", "bobby", "company 1"]]
  
# specify column names
columns = ['ID', 'NAME', 'Company']
  
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
  
# orderBy dataframe in desc order
dataframe.orderBy(['Name', 'ID', 'Company'], 
                  ascending=False).show()

Producción:

Método 2: Usar sort()

Esta función devolverá el marco de datos después de ordenar las múltiples columnas. Se ordenará primero según el nombre de columna dado.

Sintaxis :

  • Orden ascendente: dataframe.sort([‘columna1′,’columna2′,……,’columna n’], ascendente=Verdadero).mostrar()
  • Orden descendente: dataframe.sort([‘columna1′,’columna2′,……,’columna n’], ascendente=Falso).mostrar()

dónde,

  1. dataframe es el marco de datos de entrada de Pyspark
  2. ascending=True especifica ordenar el marco de datos en orden ascendente
  3. ascending=False especifica ordenar el marco de datos en orden descendente

Ejemplo 1: ordenar el marco de datos de PySpark en orden ascendente

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"],
        ["5", "bobby", "company 1"]]
  
# specify column names
columns = ['ID', 'NAME', 'Company']
  
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
  
# orderBy dataframe in asc order
dataframe.sort(['Name', 'ID', 'Company'],
               ascending=True).show()

Producción:

Ejemplo 2: ordenar el marco de datos de PySpark en orden descendente

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"],
        ["5", "bobby", "company 1"]]
  
# specify column names
columns = ['ID', 'NAME', 'Company']
  
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
  
# orderBy dataframe in desc order
dataframe.sort(['Name', 'ID', 'Company'],
               ascending=False).show()

Producción:

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 *