我已经读过,火花中的kryo缓冲区的最大大小可以是2048 mb,并且应该比我的程序将序列化的最大对象大(源:https://spark.apache.org/docs/latest/tuning.html)。但是,如果我的最大对象大于2gb,我该怎么办?在这种情况下,我必须使用java序列化程序吗?或者java序列化程序也有2g的限制吗?
发布于 2022-07-10 23:56:03
Kryo不能处理大于2GB的东西的主要原因是它使用Java的原语,使用Java数组来设置缓冲区。Java数组的限制是2Gb。这就是为什么Kryo有这个限制的主要原因。在Spark中完成的此检查是为了避免在执行期间发生错误,从而为您调试和处理代码造成更大的问题。
有关更多细节,请看一看这里。
https://stackoverflow.com/questions/72926969
复制相似问题