質問

Kryoシリアライゼーションを使用しようとしています:

kryo.setRegistrationRequired(true);
.

特定のクラスが登録されていないと言って次のエラーが発生し続けてください。

java.lang.IllegalArgumentException: Class is not registered: com.my.package.MyClass[]
Note: To register this class use: kryo.register(com.my.package.MyClass[].class);
.

しかし、登録します。

kryo.register(classOf[MyClass[_]])
.

log.trace()を設定するときは、次の出力を取得します。

00:11 TRACE: [kryo] Register class ID 51: com.my.package.MyClass (com.esotericsoftware.kryo.serializers.FieldSerializer)
.

トレースロガーが登録されていると印刷されたときに登録されていないのはなぜですか。私は問題についての有用な文書を見つけることができません。誰もがこれまでにこれを経験しましたか?Apache Spark v0.8.1

を実行しているのに役立つ場合

役に立ちましたか?

解決

私は問題が何であるかを考え出した。Scala Generic構文[]にJavaアレイ構文[]を間違えていました[]。MyClassの配列を登録しなかったため、例外がスローされていました。

SOのJava

kryo.register( MyClass[].class );
.

とScala

kryo.register( classOf[ Array[ MyClass[_] ] ] )
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top