将任务发送到Spark中的特定执行者

时间:2018-11-02 10:37:54

标签: scala apache-spark

我将数据从文件读取到rdd并将它们划分为三个分区,如下所示:

val rdd=sc.textFile("pathToFile",minPartitions=3)

我使用三个执行程序在独立群集上运行该应用程序。我的问题是是否有一种方法可以将第一个分区发送给ID = 0的执行程序(或特定的分区)。 例如,我希望执行该阶段的步骤如下:

任务0-执行器0

任务1-执行程序1

任务2-执行器2

相反,由于火花将分区发送到“随机”(我知道这不是真正的随机)位置,因此最终如下所示:

任务0-执行器1

任务1-执行程序2

任务2-执行程序0

我知道使用preferredLocations时有makeRDD,但是我不知道如何转换代码来匹配它。

1 个答案:

答案 0 :(得分:0)

没有这样的精细控制。如果将架构​​考虑在内,也不需要。但是,使用“自定义”分区时,存在一些隐式控件。