我有一个带有倾斜数据的 Spark 工作。数据需要基于列进行分区。我想告诉 spark 首先开始处理最大的分区,以便更有效地使用可用资源。
推理如下:我总共有 10000 个分区,其中 9999 个分区只需要 1 分钟来处理,1 个分区需要 10 分钟来处理。如果我先得到沉重的分区,我可以在 11 分钟内完成这项工作,如果最后得到它则需要 18 分钟。
有没有办法确定分区的优先级?你能理解这个吗?
我在电子表格 上勾勒出这两个场景。
最佳答案
你的推理是正确的 afa:如果大任务立即开始,那么你的整体工作将更早完成。但是,您也不能控制任务的顺序(/优先级),因为 spark 任务调度程序不提供定义该顺序的接口(interface)。
关于apache-spark - 在 Spark 中优先分区/任务执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51883211/