开发者社区> 问答> 正文

使用不同顺序的两列对Spark Dataframe进行排序

比方说,我有一个这样的表:

A,B
2,6
1,2
1,3
1,5
2,3
我想按列的升序排序,A但在其中我想按列的降序对其进行排序B,如下所示:

A,B
1,5
1,3
1,2
2,6
2,3
我试过用,orderBy("A", desc("B"))但它给出了一个错误。

我应该如何在Spark 2.0中使用数据框编写查询?

展开
收起
社区小助手 2018-12-06 11:52:25 4661 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    使用Column方法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|
    // +---+---+

    2019-07-17 23:18:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载