Let's say, I have a table like this:
A,B
2,6
1,2
1,3
1,5
2,3
I want to sort it with ascending order for column A
but within that I want to sort it in descending order of column B
, like this:
A,B
1,5
1,3
1,2
2,6
2,3
I have tried to use orderBy("A", desc("B"))
but it gives an error.
How should I write the query using dataframe in Spark 2.0?
Use Column method desc , as shown below:
val df = Seq(
(2,6), (1,2), (1,3), (1,5), (2,3)
).toDF("A", "B")
df.orderBy($"A", $"B".desc).show
// +---+---+
// | A| B|
// +---+---+
// | 1| 5|
// | 1| 3|
// | 1| 2|
// | 2| 6|
// | 2| 3|
// +---+---+
desc
is the correct method to use, however, not that it is a method in the Columnn
class. It should therefore be applied as follows:
df.orderBy($"A", $"B".desc)
$"B".desc
returns a column so "A"
must also be changed to $"A"
(or col("A")
if spark implicits isn't imported).
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.