如何知道Pyspark中广播变量的可用内存量



我有一个在Pyspark中使用的广播变量,我想知道我有多少可用空间。

我知道广播变量停留在spark.executor.memory中,但是它必须适合存储范围吗?还是处理的范围?

我知道spark.memory.fraction是用于确定用于存储的spark.executor.memory的分数,而不是用于处理的数量。但是,假设我的spark.executor.memory是10GB,spark.memory.fraction0.75

广播变量必须小于2.5GB或小于5GB

这是Pyspark 1.6.1。

另外,这是一种作为参考点有用的资源:https://0x0fff.com/spark-memory-management/
我不明白该文章中的"用户内存"是什么。

编辑:作为此问题的扩展,很高兴知道cached表存储在何处。那些与广播变量相同的地方吗?还是不同的地方?在我看来,就像在spark.memory.storageFraction内部。

广播变量存储在Python进程的内存中(JVM上也有串行化副本)。因此,使用的内存部分是执行内存。

请记住,Pyspark保留每个火花核心的变量的副本。因此,实际的内存限制更接近

(`spark.executor.memory` * `spark.memory.fraction`) / `spark.executor.cores`

相关内容

  • 没有找到相关文章

最新更新