2015-05-19 26 views
57

我試過df.orderBy("col1").show(10),但它按升序排序。 df.sort("col1").show(10)也按降序排列。我看着stackoverflow和我發現的答案都是過時的或referred to RDDs。我想在spark中使用本地數據框。如何在Spark SQL中按列降序排序?

+1

他的意思是「df.sort(」col1「)。show(10)也以**升序排列**」 –

回答

49

它在org.apache.spark.sql.DataFramesort方法:

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

$.descsort該列由結果進行排序。

+3

'import org.apache.spark.sql.functions._' and'import sqlContext.implicits._'也爲你帶來很多不錯的功能。 –

+0

鏈接指向404 – jangorecki

+4

@Vedom:顯示語法錯誤: 'df.sort($「Time1」,$「Time2」.desc) SyntaxError:$符號處的無效語法 – kaks

98

您還可以通過導入火花SQL函數排序的列

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

或者

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

進口sqlContext.implicits._

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

或者

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

df.sort($ 「的ColumnName」 .desc).show()