![](/img/trans.png)
[英]what is the order guarantee when joining two columns of a spark dataframe which are processed separately?
[英]Sort Spark Dataframe with two columns in different order
比方说,我有一张这样的表:
A,B
2,6
1,2
1,3
1,5
2,3
我想按A
列A
升序对其进行排序,但在此范围内我想按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.