2015-05-19 25 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()