[英]Serialize Lucene StandardAnalyzer for Apache Spark RDD map transformation
[英]Apache Spark cheapest way to trigger a RDD transformation
我是 Apache Spark 的新手,我已經建立了一個獨立的集群來運行大量數據(整數)的排序算法。
我讓它按照我想要的方式工作。 核心如下:
JavaRDD<Integer> rdd = ctx
.parallelize(Collections.<Integer>emptyList(), PARTITIONS)
.mapPartitions(partition ->
ThreadLocalRandom
.current()
.ints(NUMBERS_PER_PARTITION, Integer.MIN_VALUE, Integer.MAX_VALUE)
.boxed()
.parallel()
.collect(Collectors.toList()))
.sortBy(x -> x, true, PARTITIONS);
這將在集群中生成隨機數,然后對它們進行排序。
問題是我只對實驗的排序時間感興趣,但 Spark 是懶惰的,排序只會被給定的動作觸發。 我使用count()
來觸發排序,但是完成計數需要很長時間,因此它延遲了我的實驗。 我不在乎得到排序的數字,甚至是它的樣本,因為我已經知道它正在正確排序。
有沒有一種方法可以觸發.sortBy()
而不必等待觸發它的操作完成? 如果沒有,是否有比count()
更便宜的操作?
sort 是一個懶惰的火花轉換
您可以使用非惰性返回值之一來觸發操作
您已經嘗試過需要花費大量時間的計數
嘗試: first() 或 take(n)
這是惰性/非惰性操作的列表
https://www.mapr.com/ebooks/spark/apache-spark-cheat-sheet.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.