我有~15GB的数据,有两列:Long和Double。我想按Double排序并拉出top- N 值。在24个节点上使用~92 vCores可以快速简便,对吧?
为简单起见,我考虑了任务反序列化时间。
这是我的代码:
val df = sqlContext.read.parquet("/path/to/data").toDF()
val n = 1000000
val sorted = df.sort($"_2".desc)
val limited = sorted.limit(n)
val rdd = limited.rdd
import java.io._
val pw1 = new PrintWriter(new File("output.txt"))
for (line <- rdd.toLocalIterator) { pw1.println(line) }
pw1.close()