Spark ストリーミング java.io.InvalidClassException: プロジェクト名.クラス名;ローカル クラスに互換性がない: ストリーム クラス記述serialVersionUID
温馨提示:
本文最后更新于 2024年04月12日,已超过 26 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
Spark 2.0.2 と Scala 2.11.8 を使用して Spark ストリーミング アプリを作成します。私のアプリでは、クラスは Serializable を拡張します。ちなみに、このクラスに新しいフィールドを追加すると、Spark で実行するとこのエラーが表示されます。
Exception in thread "main" java.io.InvalidClassException: projectname.clasname; local class incompatible: stream classdesc serialVersionUID = -6009442170907349114, local class serialVersionUID = 6529685098267757690
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
注釈 @SerialVersionUID(-6009442170907349114l) を追加すると、そのエラーは消えますが、クラスの新しいフィールドは当然の null に設定されます。
Scala と Spark Streaming でシリアル化可能を拡張するクラスに新しいフィールドを追加するにはどうすればよいですか?
正文到此结束
- 本文标签: 家庭宠物
- 本文链接: https://www.coder6.net/article/2651
- 版权声明: 本文由蚂蚁原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权