【问题标题】:Kryo Serialization empty DeserializationKryo 序列化空反序列化
【发布时间】:2023-03-07 15:37:02
【问题描述】:

我重构了我的代码以使用 kryo 序列化。 除了反序列化某个类的几何属性外,一切正常。 没有抛出异常(我将“spark.kryo.registrationRequired”设置为 true)。 在调试时,我尝试收集数据,我发现几何中的数据只是空的。结果我知道反序列化失败了。 Geomtry 来自 - Any(scala) 类型,因为它可能是一个复杂的属性。 我的问题是为什么数据是空的,并且是否与属性的“任何”类型有联系。

更新:

类代码:class Entity(val id:String) extends Serializable{

变量索引:Any = null

var 几何:Any = null

}

几何包含圆心、形状和坐标(复杂对象)

【问题讨论】:

  • 如果您希望我们提供帮助,您需要提供minimal reproducible example 来说明您的问题。文字很棒,但我们需要实际查看代码中发生的情况才能提供帮助。

标签: scala serialization apache-spark kryo


【解决方案1】:

您不应将 Kryo 与 Scala 一起使用,因为许多 Scala 类的行为与 Java 类不同,并且 Kryo 最初是为与 Java 一起使用而编写的。如果您将 Kryo 与 Scala 一起使用,您可能会遇到许多类似这样的奇怪问题。您应该改用 chill-scala,它是 Kryo 的扩展,可以处理 Scala 的所有特殊情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-18
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多