org.apache.spark.sql.DataFrame.limit是否合理用于大值?

时间:2016-05-12 18:00:41

标签: apache-spark

我有~15GB的数据,有两列:Long和Double。我想按Double排序并拉出top- N 值。在24个节点上使用~92 vCores可以快速简便,对吧?

为简单起见,我考虑了任务反序列化时间。

  • N = 10,000时,它会在1分钟内运行。
  • N = 100,000时,它会在1.5分钟内运行。
  • N = 1,000,000时,它会在21分钟内运行。

这是我的代码:

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()

0 个答案:

没有答案