火花中的RDD内存占用量

spa*_*eam 3 compression memory-footprint apache-spark parquet rdd

我不确定内存占用量的概念。加载例如 1GB并在Spark中创建RDD,每个RDD的内存食物打印内容是什么?

mar*_*ios 5

当您从镶木地板文件中创建RDD时,将不会加载/执行任何操作,直到您在RDD上执行操作(例如,首先收集)为止。

现在,您的内存占用量很可能会随时间变化。假设您有100个分区,并且它们大小相等(每个分区10 MB)。假设您在具有20个核心的群集上运行,那么在任何时候,您只需要10MB x 20 = 200MB在内存中存储数据即可。

除此之外,鉴于Java对象倾向于占用更多空间,要说出1GB文件在JVM Heap中将占用多少空间(假设您加载整个文件)并不容易。可能是我的2倍或更多。

您可以测试此方法的一个技巧是强制将RDD缓存。然后,您可以在“存储”下签入Spark UI,并查看RDD缓存了多少空间。