RDD存到磁盘的文件大小是 4.96M。
1. MEMORY_ONLY and not Serializer
使用MEMORY_ONLY 方式缓存,RDD占用内存的大小为22.6M。比原文件大了4倍左右。
2.MEMORY_ONLY_SER and JavaSerializer
使用MEMORY_ONLY_SER 并且序列化方式为默认的JavaSerializer方式缓存,RDD占用内存的大小为5.7M。
3.MEMORY_ONLY_SER and KryoSerializer and not registerKryoClasses
使用MEMORY_ONLY_SER 并且序列化方式为未注册的KryoSerializer 方式缓存,RDD占用内存的大小为9.7M。
可见未注册的KryoSerializer 占用内存比JavaSerializer还要大一些
4.MEMORY_ONLY_SER and KryoSerializer and registerKryoClasses
使用MEMORY_ONLY_SER 并且序列化方式为注册的KryoSerializer 方式缓存,RDD占用内存的大小为3.8M。
通过以上测试可以发现,注册的KryoSerializer 序列化方式所占内存是最少的,也是推荐官方来使用的。
欢迎访问个人博客!