我对Spark比较陌生,所以我在遵循sparkbyexamples.com上的这篇精彩教程时,发现了以下部分:
Shuffle分区大小和性能
根据您的数据集大小、核心数和内存使用情况,PySpark的洗牌操作可能会对作业产生利益或损害。当您处理少量数据时,通常应该减少shuffle分区的数量,否则您将得到许多分区文件,每个分区中的记录数量较少,这会导致运行许多任务来处理较少的数据。
另一方面,当您有过多的数据并且分区数量较少时,会导致任务执行时间较长,有时还可能出现内存错误。
确定适当的shuffle分区大小总是棘手的,需要使用不同的值进行多次运行以实现优化的数量。当您在PySpark作业中遇到性能问题时,这是要查看的关键属性之一。
有人可以帮我理解如何确定作业所需的shuffle分区数量吗?