存储级别 | 说明 |
MEMORY_ONLY | 它将 RDD 作为反序列化的 Java 对象存储在 JVM 中。这是默认级别。如果 RDD 不适合内存,某些分区将不会在每次需要时缓存和重新计算。 |
MEMORY_AND_DISK | 它将 RDD 作为反序列化的 Java 对象存储在 JVM 中。如果 RDD 不适合内存,则存储不适合磁盘的分区,并在需要时从那里读取。 |
MEMORY_ONLY_SER (Java 和 Scala) |
它将 RDD 存储为序列化的 Java 对象(即每个分区一字节数组)。这通常比反序列化对象更节省空间。 |
MEMORY_AND_DISK_SER (Java 和 Scala) |
它类似于 MEMORY_ONLY_SER,但将不适合内存的分区溢出到磁盘而不是重新计算它们。 |
DISK_ONLY | 它只将 RDD 分区存储在磁盘上。 |
MEMORY_ONLY_2、MEMORY_AND_DISK_2 等 | 与上面的级别相同,但在两个集群节点上复制每个分区。 |
OFF_HEAP(实验性) | 它类似于 MEMORY_ONLY_SER,但将数据存储在堆外内存中。必须启用堆外内存。 |