我不确定记忆足印的概念。当加载例如的镶木地板文件时。 1GB并在Spark中创建RDD,每个RDD的内存食物打印是什么?
答案 0 :(得分:3)
当您从镶木地板文件中创建RDD时,在RDD上运行操作(例如,首先,收集)之前,不会加载/执行任何操作。
现在,您的内存占用率很可能随时间而变化。假设您有100个分区,它们大小相同(每个10 MB)。假设您在具有20个内核的群集上运行,那么在任何时间点您只需要在内存中包含10MB x 20 = 200MB
个数据。
除此之外,假设Java对象倾向于占用更多空间,那么1GB文件在JVM堆中将占用多少空间并不容易(假设您加载整个文件) 。它可能是我2倍或它可以更多。
你可以做的一个方法是强制你的RDD被缓存。然后,您可以检查存储下的Spark UI,并查看RDD用于缓存的空间大小。
答案 1 :(得分:0)