1

我想df.count()在我的 DataFrame 上运行,但我知道我的数据集总大小非常大。这是否存在将数据具体化回驱动程序的风险/增加驱动程序OOM的风险?

4

1 回答 1

1

这不会将您的整个数据集具体化给驱动程序,也不一定会增加您的 OOM 风险。(它会强制对传入的 DataFrame 进行评估,因此,如果该评估意味着您将 OOM,那么您将在该点被识别.count(),但它.count()本身并没有导致这种情况,它只会让您意识到这一点)。

然而,这会做的是从你调用的那一点停止你的工作的执行。.count(). 这是因为驱动程序必须知道这个值,然后它才能继续你的任何其余工作,所以它不是 Spark / 分布式计算的特别有效的使用。仅在必要时使用.count(),即在选择分区计数或其他此类动态调整大小操作时。

于 2021-12-13T16:42:13.273 回答