Apache spark 在spark中安排任务

Apache spark 在spark中安排任务,apache-spark,pyspark,emr,Apache Spark,Pyspark,Emr,我正在运行一个pyspark应用程序,它由一个阶段组成。阶段中任务的数量取决于分区的数量,因此阶段中存在多个任务。我想根据它所承载的分区大小来安排任务。例如,应该首先调度分区较大的任务 有没有办法用我们自己的算法在spark作业中调度任务?没有,这是不可能的(如果您只想在spark中自己实现):顺便说一句,一般来说,您应该尝试保持分区大小或多或少相等,以便更快地处理。例如,在过滤操作之后,有时调用重新分区来均衡数据可能会很有用。@VladislavVarslavans实际上在我的用例中,我正在使

我正在运行一个pyspark应用程序,它由一个阶段组成。阶段中任务的数量取决于分区的数量,因此阶段中存在多个任务。我想根据它所承载的分区大小来安排任务。例如,应该首先调度分区较大的任务


有没有办法用我们自己的算法在spark作业中调度任务?

没有,这是不可能的(如果您只想在spark中自己实现):顺便说一句,一般来说,您应该尝试保持分区大小或多或少相等,以便更快地处理。例如,在
过滤
操作之后,有时调用
重新分区
来均衡数据可能会很有用。@VladislavVarslavans实际上在我的用例中,我正在使用sc.wholeTextFiles()从s3读取文件,它返回成对的RDD,并且一个文件应该驻留在一个分区中。因此,重新划分是不可能的。好的,谢谢你的评论。事实上,如果从进一步处理的角度来看不需要整个文件,你仍然可以
重新分区
你的数据,方法是使用
flatMap
对文件行进行RDD,然后再
重新分区。或者,如果需要,您可以在
flatMap
之后添加一对
(文件名,单线)