原创

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 でシリアル化可能を拡張するクラスに新しいフィールドを追加するにはどうすればよいですか?

正文到此结束
热门推荐
本文目录