apache-spark - spark 中的 RDD 内存占用

标签 apache-spark compression rdd parquet memory-footprint

我不确定内存占用的概念。加载例如 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/

相关文章:

docker - 无法在 Airflow UI 中编辑 Spark_default

python - PySpark:如何在 PySpark SQL 中创建计算列?

python - 如何使用 Python 创建完整的压缩 tar 文件?

apache-spark - Spark : cache RDD to be used in another job

java - 合并多个 JavaRDD

streaming - Spark 流 : enrich stream with reference data

java - Apache Commons compress - 分割 Zip 文件

computer-science - 熵的计算机科学定义是什么?

apache-spark - 在pyspark中将rdd转换为没有模式的数据帧

scala - 从数据帧访问 scala 映射而不使用 UDF