我不确定内存占用的概念。加载例如 Parquet 文件时。 1GB 并在 Spark 中创建 RDD,每个 RDD 的内存食物打印是什么?
最佳答案
当您从 parquet 文件创建 RDD 时,在您对 RDD 运行操作(例如,首先,收集)之前,不会加载/执行任何内容。
现在您的内存占用很可能会随时间变化。假设您有 100 个分区并且它们大小相同(每个 10 MB)。假设您在一个有 20 个内核的集群上运行,那么在任何时间点您只需要在内存中有 10MB x 20 = 200MB
数据。
除此之外,考虑到 Java 对象往往占用更多空间,因此很难准确地说出 1GB 文件将在 JVM 堆中占用多少空间(假设您加载了整个文件)。它可以是我的 2 倍,也可以是更多。
测试这个的一个技巧是强制你的 RDD 被缓存。然后,您可以在 Storage 下检查 Spark UI 并查看 RDD 缓存了多少空间。
关于apache-spark - spark 中的 RDD 内存占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37060245/