title: why serialized persisted RDD is occupies less memory than deserialized persisted RDD
body: <p>I read that when an RDD is persisted in memory with some sort of serialization (whether it is default Java serialization or something like Kryo serialization) it occupies less space in memory. My understanding of serialization is that it is just a way to convert a Java object in memory to series of bits, and the deserialization is really the <strong>process</strong> of bringing those bits into memory as an object. So I always think of deserialization as <strong>bringing back</strong> to memory as an obeject from series of bits. Because of this the term of storing something as deserialized data is confusing to me. For me storing (as series of bits) is serialization and retrieving is deserialization. So I am not really able to imagine what it means by storing something as deserialized data. And because of this I am also not able to understand why would a serialized form occupy less space in cache. It seems to me that there is more to de/serialization than just dumping objects and getting them back, but I don't know what, and would exactly like to understand just that. Is it because serialized format is some sort of compression format really? and deserialized format is without any compression? As far as I know in Java programming I never came across the concept of storing objects as deserialized format. When we refer to storing, any Java article immediately starts talking about serialization and deserialization it only talks in the context of reading and bringing it back as object.</p>