tutorial spark org downloads scala apache-spark apache-spark-sql

scala - org - ¿Cómo ordenar por columna en orden descendente en Spark SQL?



pyspark (6)

En el caso de Java:

Si usamos DataFrames , mientras aplicamos combinaciones (aquí combinación interna), podemos ordenar (en ASC) después de seleccionar elementos distintos en cada DF como:

Dataset<Row> d1 = e_data.distinct().join(s_data.distinct(), "e_id").orderBy("salary");

donde e_id es la columna en la que se aplica la unión mientras se ordena por salario en ASC.

Además, podemos usar Spark SQL como:

SQLContext sqlCtx = spark.sqlContext(); sqlCtx.sql("select * from global_temp.salary order by salary desc").show();

dónde

  • chispa -> SparkSession
  • salario -> Vista GlobalTemp.

Intenté df.orderBy("col1").show(10) pero se ordenó en orden ascendente. df.sort("col1").show(10) también se ordena en orden descendente. Miré en stackoverflow y las respuestas que encontré estaban todas desactualizadas o referidas a RDD . Me gustaría usar el marco de datos nativo en spark.


Está en org.apache.spark.sql.DataFrame para el método de sort :

df.sort($"col1", $"col2".desc)

Tenga en cuenta $ y .desc dentro de la sort de la columna para ordenar los resultados.


También puede ordenar la columna importando las funciones de spark sql

import org.apache.spark.sql.functions._ df.orderBy(asc("col1"))

O

import org.apache.spark.sql.functions._ df.sort(desc("col1"))

importando sqlContext.implicits._

import sqlContext.implicits._ df.orderBy($"col1".desc)

O

import sqlContext.implicits._ df.sort($"col1".desc)



import org.apache.spark.sql.functions.desc df.orderBy(desc("columnname1"),desc("columnname2"),asc("columnname3"))


df.sort($"ColumnName".desc).show()