【发布时间】:2015-08-13 09:30:29
【问题描述】:
我读到,当 RDD 通过某种序列化(无论是默认的 Java 序列化还是 Kryo 序列化之类的东西)持久保存在内存中时,它在内存中占用的空间更少。我对序列化的理解是,它只是将内存中的Java对象转换为一系列位的一种方式,而反序列化实际上是将这些位作为对象放入内存的过程。所以我一直认为反序列化是带回记忆作为一系列位的对象。因此,将某些内容存储为反序列化数据的术语让我感到困惑。对我来说,存储(作为一系列位)是序列化,而检索是反序列化。所以我真的无法想象将某些东西存储为反序列化数据意味着什么。正因为如此,我也无法理解为什么序列化表单会在缓存中占用更少的空间。在我看来,反序列化/序列化不仅仅是转储对象并将它们取回,但我不知道是什么,并且完全想理解这一点。是因为序列化格式真的是某种压缩格式吗?和反序列化格式没有任何压缩?据我所知,在 Java 编程中,我从未遇到过将对象存储为反序列化格式的概念。当我们提到存储时,任何 Java 文章都会立即开始讨论序列化和反序列化,它只在读取并将其作为对象返回的上下文中进行讨论。
【问题讨论】:
-
好问题,但我没有看到关于为什么序列化 RDD 占用更少内存的答案?
标签: apache-spark rdd