Как Сортировать по столбцу в порядке убывания в 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.