簡體   English   中英

用不同順序的兩列對 Spark Dataframe 進行排序

[英]Sort Spark Dataframe with two columns in different order

比方說,我有一張這樣的表:

A,B
2,6
1,2
1,3
1,5
2,3

我想按AA升序對其進行排序,但在此范圍內我想按B列的降序對其進行排序,如下所示:

A,B
1,5
1,3
1,2
2,6
2,3

我嘗試使用orderBy("A", desc("B"))但它給出了一個錯誤。

我應該如何在 Spark 2.0 中使用數據框編寫查詢?

使用列方法desc ,如下圖:

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是正確的使用方法,但並不是說它是Columnn類中的方法。 因此,應按如下方式應用:

df.orderBy($"A", $"B".desc)

$"B".desc返回一列,因此"A"也必須更改為$"A" (或col("A")如果未導入 spark 隱式)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM