我想df.count()
在我的 DataFrame 上运行,但我知道我的数据集总大小非常大。这是否存在将数据具体化回驱动程序的风险/增加驱动程序OOM的风险?
1 回答
1
这不会将您的整个数据集具体化给驱动程序,也不一定会增加您的 OOM 风险。(它会强制对传入的 DataFrame 进行评估,因此,如果该评估意味着您将 OOM,那么您将在该点被识别.count()
,但它.count()
本身并没有导致这种情况,它只会让您意识到这一点)。
然而,这会做的是从你调用的那一点停止你的工作的执行。.count()
. 这是因为驱动程序必须知道这个值,然后它才能继续你的任何其余工作,所以它不是 Spark / 分布式计算的特别有效的使用。仅在必要时使用.count()
,即在选择分区计数或其他此类动态调整大小操作时。
于 2021-12-13T16:42:13.273 回答