我有这样的数据集,我从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|
+-----------+-----------+----------+
如何对所有列上的数据进行排序?
由于
答案 0 :(得分:1)
csv.sortBy(r => (r.recent, r.freq))
或同等的人应该这样做
答案 1 :(得分:1)
假设您输入的RDF / DataFrame名为df
按降序对recent
进行排序,Freq
和Monitor
都按升序排序
import org.apache.spark.sql.functions._
val sorted = df.sort(desc("recent"), asc("Freq"), asc("Monitor"))
您也可以使用df.orderBy(...)
,它是sort()
的别名。