Apache spark apachespark分区
我有一个问题: 如果执行分区,则执行如下操作 reduce/fold,这是否意味着分区已撤消,我将Apache spark apachespark分区,apache-spark,partitioning,Apache Spark,Partitioning,我有一个问题: 如果执行分区,则执行如下操作 reduce/fold,这是否意味着分区已撤消,我将 必须在操作后重新分区以获得更好的性能?Spark return中的操作 对于纯粹用于副作用的操作,例如foreach,没有任何内容(None,在PySpark中,void,在Java中,Unit) 用于其他操作的本地、非分布式对象 同时,操作不会影响不可变对象或被调用的对象(缓存、检查点、缓存无序文件和计算统计数据可能产生的副作用除外) 因此,分区在这里并不是真正有意义的概念 结果不是Spar
必须在操作后重新分区以获得更好的性能?Spark return中的操作
- 对于纯粹用于副作用的操作,例如
,没有任何内容(foreach
,在PySpark中,None
,在Java中,void
)Unit
- 用于其他操作的本地、非分布式对象
结果不是Spark分布式数据结构,因此分区不适用,源不被修改(并且是描述,不是容器)。Spark返回中的操作
- 对于纯粹用于副作用的操作,例如
,没有任何内容(foreach
,在PySpark中,None
,在Java中,void
)Unit
- 用于其他操作的本地、非分布式对象
结果不是Spark分布式数据结构,因此分区不适用,源不被修改(并且是描述,而不是容器)。数据分区后,Spark将维护分区,以便进一步处理,包括转换/操作,除非您进行修复或合并
创建分区后,每个执行者将分配一个任务,以便在分配给它的分区的一个阶段中运行转换/操作,并且分区(更新)将在数据分区后从一个阶段移动到任何转换/操作的另一个阶段,分区由Spark维护,以便进一步处理,包括转换/操作,除非您进行修复或合并
创建分区后,每个执行者将分配一个任务,在分配给它的分区的一个阶段中运行转换/操作,分区(更新)将从一个阶段移动到任何转换/操作的另一个阶段回答了我两个问题的前半部分。我把它编辑了出来。如果你减少了这个RDD中分区的数量,考虑使用CuleSeCE,这可以避免执行洗牌。我的两个问题的第一部分得到了回答。我编辑了这一点。如果你减少了这个RDD中分区的数量,考虑使用CueSeCE,这可以避免执行洗牌。