Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark RDD何时排序?_Apache Spark - Fatal编程技术网

Apache spark RDD何时排序?

Apache spark RDD何时排序?,apache-spark,Apache Spark,我正在学习ApacheSpark,对此我有一个早期的问题。看起来,即使在对RDD进行排序时,它仍然可以不排序,这取决于您如何访问它。假设我执行了如下排序: val someSortedRDD = someUnsortedRDD.map{[some condition]}.sortByKey() 这将始终按顺序出现: someSortedRDD.collect() 但是,这将以可能未排序的顺序打印,即使我之前对该RDD进行了排序: someSortedRDD.foreach(println)

我正在学习ApacheSpark,对此我有一个早期的问题。看起来,即使在对RDD进行排序时,它仍然可以不排序,这取决于您如何访问它。假设我执行了如下排序:

val someSortedRDD = someUnsortedRDD.map{[some condition]}.sortByKey()
这将始终按顺序出现:

someSortedRDD.collect()
但是,这将以可能未排序的顺序打印,即使我之前对该RDD进行了排序:

someSortedRDD.foreach(println)

因此,我只是想知道是否有一些一般原则可以遵循,以知道何时以排序与未排序的顺序访问RDD。

foreach
是在工作机上运行的(在集群模式下,这实际上不会显示在驱动机上),而不是在驱动机上。很明显,排序顺序不是一个问题(我认为)-或者执行是按分区进行的,等等。但是
collect
始终保留排序顺序。那么为什么不升级为一个答案呢?