PySpark 任务大小

PySpark Task Size

我目前在 2.4.5 版本上有一个由 1 个驱动程序和 2 个工作程序组成的 Spark 集群。

我想进一步优化并行性,以便在加载和处理数据时获得更好的吞吐量,当我这样做时,我经常在控制台上收到这些消息:

WARN scheduler.TaskSetManager: Stage contains a task of very large size (728 KB). The maximum recommended task size is 100 KB.

这是如何工作的?我对 Spark 技术还很陌生,但了解它的基础知识,我想知道如何优化它,但我不确定它是否涉及配置从属设备以拥有更多执行程序并通过这种方式获得更多并行性,或者我是否需要使用合并或重新分区功能对我的数据帧进行分区。

先谢谢大家了!

这里的一般要点是您需要重新分区以获得更多但更小的分区,从而获得更多的并行性和更高的吞吐量。 728k 是与您的舞台相关的任意数字。当我第一次开始使用 Scala 和 Spark 时,有时会遇到这种情况。

我看不到你的代码,所以我把它留在这里。但是在这里谷歌搜索 SO 表明也缺乏并行性。老实说相当有名。