我将数据从文件读取到rdd并将它们划分为三个分区,如下所示:
val rdd=sc.textFile("pathToFile",minPartitions=3)
我使用三个执行程序在独立群集上运行该应用程序。我的问题是是否有一种方法可以将第一个分区发送给ID = 0的执行程序(或特定的分区)。 例如,我希望执行该阶段的步骤如下:
任务0-执行器0
任务1-执行程序1
任务2-执行器2
相反,由于火花将分区发送到“随机”(我知道这不是真正的随机)位置,因此最终如下所示:
任务0-执行器1
任务1-执行程序2
任务2-执行程序0
我知道使用preferredLocations
时有makeRDD
,但是我不知道如何转换代码来匹配它。
答案 0 :(得分:0)
没有这样的精细控制。如果将架构考虑在内,也不需要。但是,使用“自定义”分区时,存在一些隐式控件。