scala - 如何对 apache spark scala 中的多列数据进行排序?

标签 scala apache-spark

我有这样的数据集,我从 csv 文件中获取并使用 scala 将其转换为 RDD。

+-----------+-----------+----------+
| recent    | Freq      | Monitor  |
+-----------+-----------+----------+
|        1  |       1234 |   199090|
|        4  |       2553|    198613|
|        6  |       3232 |   199090|
|        1  |       8823 |   498831|
|        7  |       2902 |   890000|
|        8  |       7991 |   081097|
|        9  |       7391 |   432370|
|        12 |       6138 |   864981|
|        7  |       6812 |   749821|
+-----------+-----------+----------+

如何对所有列的数据进行排序?

谢谢

最佳答案

假设您的输入 RDD/DataFrame 称为 df。

要对 recent 进行降序排序,将 FreqMonitor 都进行升序排序,您可以这样做:

import org.apache.spark.sql.functions._

val sorted = df.sort(desc("recent"), asc("Freq"), asc("Monitor"))

您也可以使用 df.orderBy(...),它是 sort() 的别名。

关于scala - 如何对 apache spark scala 中的多列数据进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36717510/

相关文章:

java - Spark 强制 log4j

apache-spark - 使用提供的 Hadoop 构建 Spark

Scala:可选类型参数?

scala - 在 Scala 和 SBT 中调试较长的编译时间

scala - Akka http 请求在通过管道传输给 actor 时不会被 runFold 使用

mongodb - RDD 仅部分写入 mongo

java - Spark SQL sql ("<some aggregate query>").first().getDouble(0) 给我不一致的结果

apache-spark - 如何使用pyspark将数据帧保存在 ".txt"文件中

java - 未找到类 Spark Streaming 和 kafka

Scala和尾递归