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