2015-05-19 6 views
57

Ich versuchte df.orderBy("col1").show(10), aber es in aufsteigender Reihenfolge sortiert. df.sort("col1").show(10) sortiert auch in absteigender Reihenfolge. Ich schaute auf Stackoverflow und die Antworten, die ich fand, waren alle veraltet oder referred to RDDs. Ich möchte den nativen Dataframe in Spark verwenden.Wie nach Spalte in absteigender Reihenfolge in Spark SQL zu sortieren?

+1

Er meint "df.sort (" col1 "). Show (10) sortiert auch in aufsteigender Reihenfolge" –

Antwort

49

Es ist in org.apache.spark.sql.DataFrame für sort Methode:

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

Hinweis $ und .desc innerhalb sort für die Säule durch die Ergebnisse sortiert werden.

+3

'import org.apache.spark.sql.functions._' und' import sqlContext.implicits._' erhalten Sie auch eine Menge nette Funktionalität. –

+0

Link zeigt auf 404 – jangorecki

+4

@Vedom: Zeigt einen Syntaxfehler: 'df.sort ($" Time1 ", $" Time2 ".desc) SyntaxError: ungültige Syntax' am $ -Symbol – kaks

98

Sie auch die Spalte durch den Import der Funken SQL-Funktionen

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

Oder

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

Import sqlContext.implicits._

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

Oder

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

df.sort ($ "Spaltenname" .Desc) .show()

Verwandte Themen