Hat*_*tak 4 java memory-management apache-spark apache-spark-dataset apache-spark-encoders
我在使用Spark的缓存机制时遇到了内存管理问题。我目前正在将Encoder
s 与 Kryo 结合使用,想知道切换到 beans 是否可以帮助我减少缓存数据集的大小。
基本上,在使用 s 时,使用 beans 相对于 Kryo 序列化有哪些优缺点Encoder
?有任何性能改进吗?Dataset
除了使用 SER 选项进行缓存之外,还有其他方法可以压缩缓存吗?
作为记录,我发现了一个类似的主题来处理两者之间的比较。然而,它没有详细讨论这个比较。
随时你可以。与通用二进制不同Encoders
,通用二进制使用通用二进制序列化并将整个对象存储为不透明的 blob,它Encoders.bean[T]
利用对象的结构来提供特定于类的存储布局。
Encoders.bean
当您比较使用和创建的模式时,这种差异就变得很明显Encoders.kryo
。
为什么这有关系?
Dataset
转换。那么什么时候使用kryo
Encoder
呢?一般来说,当其他方法都不起作用时。就我个人而言,我会完全避免它进行数据序列化。我能想到的唯一真正有用的应用程序是聚合缓冲区的序列化(例如检查如何在 Spark SQL 中查找分组向量列的平均值?)。
归档时间: |
|
查看次数: |
3079 次 |
最近记录: |