Как Сортировать по столбцу в порядке убывания в Spark SQL?
пробовал df.orderBy("col1").show(10)
но он отсортирован в порядке возрастания. df.sort("col1").show(10)
также сортирует в порядке убывания. Я посмотрел на stackoverflow, и ответы, которые я нашел, все устарели или ссылались на RDDs. Я хотел бы использовать собственный фрейм данных в spark.
6 ответов:
вы также можете отсортировать столбец, импортировав функции spark sql
import org.apache.spark.sql.functions._ df.orderBy(asc("col1"))
или
import org.apache.spark.sql.functions._ df.sort(desc("col1"))
импорт sqlContext.неявный._
import sqlContext.implicits._ df.orderBy($"col1".desc)
или
import sqlContext.implicits._ df.sort($"col1".desc)
это
org.apache.spark.sql.DataFrame
наsort
способ:df.sort($"col1", $"col2".desc)
Примечание
$
и.desc
внутриsort
для столбца для сортировки результатов.
самый простой способ-просто добавить параметр по возрастанию=False:
df.orderBy("col1", ascending=False).show(10)
Ссылка: http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.DataFrame.orderBy
в случае Java:
если мы используем тег
DataFrames
, применяя соединения (здесь внутреннее соединение), мы можем сортировать (в ASC) после выбора отдельных элементов в каждом DF как:Dataset<Row> d1 = e_data.distinct().join(s_data.distinct(), "e_id").orderBy("salary");
здесь
e_id
- столбец, к которому применяется join при сортировке по зарплате в ASC.кроме того, мы можем использовать Spark SQL как:
SQLContext sqlCtx = spark.sqlContext(); sqlCtx.sql("select * from global_temp.salary order by salary desc").show();
здесь
- spark - > SparkSession
- зарплата - > вид GlobalTemp.