我读到spark中kryo缓冲区的最大大小可以是2048 mb,它应该大于我的程序将序列化的最大对象(来源:https://spark.apache.org/docs/latest/tuning.html)。但是,如果最大的对象大于2gb,我该怎么办?在这种情况下,我必须使用java序列化器吗?或者java序列化器也有这种2g的限制吗?
Kryo不能处理大于2GB的内容的主要原因是它使用Java的原语,使用Java字节数组来设置缓冲区。Java字节数组的限制是2Gb。这就是为什么Kryo有这个限制的主要原因。在Spark中进行检查是为了避免错误在执行期间发生,从而为您调试和处理代码带来更大的问题。
详情请点击此处。