apache-spark - 在 Spark 中优先分区/任务执行

标签 apache-spark pyspark distribution partitioning

我有一个带有倾斜数据的 Spark 工作。数据需要基于列进行分区。我想告诉 spark 首先开始处理最大的分区,以便更有效地使用可用资源。

推理如下:我总共有 10000 个分区,其中 9999 个分区只需要 1 分钟来处理,1 个分区需要 10 分钟来处理。如果我先得到沉重的分区,我可以在 11 分钟内完成这项工作,如果最后得到它则需要 18 分钟。

有没有办法确定分区的优先级?你能理解这个吗?

我在电子表格 enter image description here 上勾勒出这两个场景。

最佳答案

你的推理是正确的 afa:如果大任务立即开始,那么你的整体工作将更早完成。但是,您也不能控制任务的顺序(/优先级),因为 spark 任务调度程序不提供定义该顺序的接口(interface)。

关于apache-spark - 在 Spark 中优先分区/任务执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51883211/

相关文章:

scala - 在 Spark API 中,makeRDD 函数和并行化函数有什么区别?

apache-spark - 分组以将 hive 中的多列值合并为一列

scala - 为什么 paramGridBuilder 与 CountVectorizer 发生 scala 错误?

apache-spark - Pyspark 附加执行器环境变量

pyspark - 无法在Databricks中使用pyspark读取json文件

python - 从 pandas 数据框中删除值分布极其不均匀的列

apache-spark - 使用 datastax 连接器连接到 cassandra

pyspark - Jupyter Notebook PySpark 内核引用主机站 pip 包中降低的 pip 版本

javascript - 使用 Zipf 分布曲线进行加权随机

c# - 稳定分布的随机数?