我正在尝试使用kryo序列化:
kryo.setRegistrationRequired(true);
Run Code Online (Sandbox Code Playgroud)
我一直收到以下错误,说某个类没有注册:
java.lang.IllegalArgumentException: Class is not registered: com.my.package.MyClass[]
Note: To register this class use: kryo.register(com.my.package.MyClass[].class);
Run Code Online (Sandbox Code Playgroud)
但是,我注册了它:
kryo.register(classOf[MyClass[_]])
Run Code Online (Sandbox Code Playgroud)
当我设置Log.TRACE()时,我得到以下输出:
00:11 TRACE: [kryo] Register class ID 51: com.my.package.MyClass (com.esotericsoftware.kryo.serializers.FieldSerializer)
Run Code Online (Sandbox Code Playgroud)
当跟踪记录器打印出已注册时,为什么说它没有注册.我找不到有关此事的任何有用文件.有谁之前经历过这个吗?如果它有助于我运行Apache Spark v0.8.1
kbi*_*irk 12
我弄清楚问题是什么.我错误地将scala通用语法[]的java数组语法[].由于我没有注册MyClass数组,因此抛出异常.
所以在java中
kryo.register( MyClass[].class );
Run Code Online (Sandbox Code Playgroud)
斯卡拉
kryo.register( classOf[ Array[ MyClass[_] ] ] )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5769 次 |
| 最近记录: |