PySpark: ordenar por() y ordenar()

En este artículo, veremos cómo ordenar el marco de datos por columnas específicas en PySpark. Podemos hacer uso de orderBy() y sort()  para ordenar el marco de datos en PySpark

Ordenar por() Método:

Ordenar por() función i

Sintaxis: DataFrame.orderBy(cols, args)

Parámetros:

  • cols: Lista de columnas a ordenar
  • args: especifica el orden de clasificación, es decir, (ascendente o descendente) de las columnas enumeradas en cols

Tipo de retorno: Devuelve un nuevo DataFrame ordenado por las columnas especificadas.

Creación de marcos de datos: cree un nuevo objeto SparkSession llamado chispa y luego cree un marco de datos con los datos personalizados.

Python3

# Importing necessary libraries
from pyspark.sql import SparkSession
from pyspark.sql import functions as f
  
# Create a spark session
spark = SparkSession.builder.appName(
  'pyspark - example join').getOrCreate()
  
# Define data in  a dataframe
dataframe = [
    ("Sam", "Software Engineer", "IND", 10000),
    ("Raj", "Data Scientist", "US", 41000),
    ("Jonas", "Sales Person", "UK", 230000),
    ("Peter", "CTO", "Ireland", 50000),
    ("Hola", "Data Analyst", "Australia", 111000),
    ("Ram", "CEO", "Iran", 300000),
    ("Lekhana", "Advertising", "UK", 250000),
    ("Thanos", "Marketing", "UIND", 114000),
    ("Nick", "Data Engineer", "Ireland", 680000),
    ("Wade", "Data Engineer", "IND", 70000)
]
  
# Column names of dataframe
columns = ["Name", "Job", "Country", "salary"]
  
# Create the spark dataframe
df = spark.createDataFrame(data=dataframe, schema=columns)
  
# Printing the dataframe
df.show()

Producción :

Ejemplo 1: ordenar el marco de datos por una sola columna

Ordene el marco de datos por orden ascendente de ‘Salario’ de los empleados en el marco de datos.

Python3

# Order the data by ascending order 
# of Salary
df.orderBy(['Salary'], ascending = [True]).show()
  
# or
# df.orderBy(f.col("Salary").asc()).show()
  
# or
# df.orderBy(['Salary']).show()

Producción :

Ejemplo 2: ordenar el marco de datos en orden decreciente.

Python3

# Order the data by dec order 
# of Salary
df.orderBy(['Salary'], ascending = [False]).show()

Producción:

Ejemplo 3: ordenar el marco de datos por más de una columna

Ordene el marco de datos por orden descendente de ‘Trabajo’ y orden ascendente de ‘Salario’ de los empleados en el marco de datos. Cuando hay un conflicto entre dos filas que tienen el mismo ‘Trabajo’, se resolverá enumerando las filas en orden ascendente de ‘Salario’.

Python3

# Sort the dataframe by descending order
# of 'Job' and whenever there is conflict
# in 'Job', it'll be resolved by ordering 
# based on ascending order of 'Salary'
df.orderBy(f.col("Job").desc(),f.col("Salary").asc()).show()
  
# or
# df.orderBy(["Job", "Salary"],ascending = [False, True]).show()

Producción :

Ordenar() método:

Toma el valor booleano como argumento para ordenar en orden ascendente o descendente.

Sintaxis:
sort(x, decreciente, na.last)

Parámetros:
x: lista de Columnas o nombres de columnas para ordenar en orden
decreciente: Valor booleano para ordenar en orden descendente
na.last: Valor booleano para poner NA al final

Ejemplo 1: Ordenar el data frame por orden ascendente del “Nombre” del empleado.

Python3

# Sort the dataframe by ascending 
# order of 'Name'
df.sort(["Name"],ascending = [True]).show()

Producción :

Ejemplo 2: ordenar la columna en orden decreciente.

Python3

# Sort the dataframe by scendding order of 'Name'
df.sort(["Name"],ascending = [False]).show()

Producción:

Ejemplo 3: ordenar varias columnas en orden ascendente.

Python3

# Sort the dataframe by acendding order of 'Name'
df.sort(["Name","salary"],ascending = [True]).show()

Producción:

Publicación traducida automáticamente

Artículo escrito por ManikantaBandla 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 *