问题标签 [kryo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
serialization - 使用 Kryo 序列化 Spark mllib 模型
我想序列化从 ML lib 分类树生成的模型,模型由节点和算法构造,节点似乎可序列化 我们可以将整个模型序列化到磁盘并从另一个类中读取以获取模型吗?
谢谢
redis - sparkContext 广播 JedisPool 不起作用
我在我的 spark 流应用程序中使用 sparkContext.broadcast 来共享 redis 连接池(JedisPool)。
像这样的代码:
Redis.createRedisPool 是:
它在本地部署模式下工作,但是当我在纱线/独立模式下运行它时
会报错:
我在我的应用程序中尝试了 set spark.serializer = org.apache.spark.serializer.KryoSerializer ,然后出现如下错误:
我该如何解决这个问题?
scala - 通过 twitter chill-scala 向 Kryo 注册课程
我正在尝试通过 Twitter 的 chill-scala 库使用 Kryo 序列化 Scala 类的实例。它来自一个库(外部 jar),因此我认为需要在 Kryo 注册。
如何使用chill-scala注册一个类以(反)序列化?
这是我的代码的核心,主要基于检查 chill-scala 测试套件。
当我运行它时,它会抛出
更一般地说,是否有关于如何使用 chill-scala 的文档?该软件包的作者显然已经完成了大量工作,并且我已经看到了许多对它的正面引用——但没有文档。
感谢您的任何指点,
拜伦
java - 如何使用 Scalding 将 Kryo 反序列化为案例类?
我知道 Scalding 的默认序列化使用 Kryo。所以对于这个例子,假设我有一个学生对象的管道。
然后我使用 Kryo 将该管道写入 TextDelimited 文件。
现在我有了这些“输出”文件,如何轻松地将它们读回 Student 对象?我的总体想法类似于以下内容,但它不起作用。
如何将我的 Kryo 编写的文本文件反序列化为它们最初所在的对象?
java - Java中更改类名的奇怪错误
我正在使用 kryo lib 序列化对象。我得到错误:
并且队友重现了该错误...似乎来自 Kryo 的 java 类名称已更改(ArrayListSerialization -> ArrayLisoSerialization)。这是在 2 台计算机(linux 和 windows,都是 jdk7)上测试过的,问题只出现在我的计算机(linux)上。我试图将 Java 版本从 jdk7 (build 67) 更改为 jdk8,但问题仍然出现。
任何想法为什么会发生?
错误跟踪的较大部分:
java - Kryo 或其他 Java 序列化库中的目录结构
我正在尝试找到一种在 Java 中使用目录结构序列化数据的方法。我要保存的数据是股票交易记录,每条记录都包含股票名称、价格、时间和交易量。我知道如何在没有任何层次结构的情况下序列化此类记录(“交易”类的实例),但我必须在阅读时遍历所有(例如数十亿条)记录来收集单个特定股票的数据。所以,我希望数据按股票名称进行分区,这样当只需要几只股票的数据时,我的读取性能就会快得多。
我知道你可以在 HDF5 中创建这样的分层结构(目录),但我正在寻找一个不使用 JNI 并且对 HDFS 更友好的 Java 序列化库。经过一些在线搜索,我发现 Kryo 是最新且最容易使用的 Java 序列化库之一。所以我希望有一些方法可以在 Kryo 文件中创建目录结构,但其他现代序列化库,如 Avro、Thrift 也可以。
谢谢您的帮助。
java - 使用 Kryo 序列化任意 Java 对象(获取 IllegalAccessError)
动机:
为了帮助远程调试 (Java),能够请求远程服务器将任意对象发送到我的本地机器进行检查是很有用的。但是,这意味着远程服务器必须能够序列化一个在运行时事先不知道的任意 java 对象。
所以我四处打听,偶然发现了Kryo 序列化库。从Kryo 的文档中,一个主要特性是它在序列化任意 java 对象方面非常健壮。对象不必实现Serializable
,不需要无参数构造函数即可反序列化,我什至不需要在序列化之前了解对象的结构。完美的!
问题:
所以为了测试 Kryo,我试着看看我是否可以序列化然后反序列化一个PrintWriter
对象(即任意对象):
序列化工作正常,但在反序列化时,对第 39 行的调用kryo.readClassAndObject(input)
给出以下内容IllegalAccessError
:
我曾希望我可以序列化和反序列化PrintWriter
object outObj
,并且对象的状态将保持不变,因此我仍然可以使用反序列化的对象来写入"Hello"
本来会保存在缓冲区中的对象。
有谁知道发生了什么以及如何纠正这个错误?
java - 如何用 Kryo 序列化 Multimap?
问题
我正在尝试序列化一个LinkedHashMultimap
使用Kryo 序列化库,但我得到了NullPointerException
反序列化。最小的工作示例如下:
kryo.readClassAndObject()
您可以在调用(第 30 行)后立即看到问题(IntelliJ 14 中调试的屏幕截图):
要么LinkedHashMultimap
在序列化时被破坏,要么只是被错误地反序列化,导致NullPointerException
.
System.out.println(inObj)
调用时产生的完整堆栈跟踪:
有谁知道如何解决这个问题?
动机:
为了帮助远程调试 (Java),能够请求远程服务器将任意对象发送到我的本地机器进行检查是很有用的。但是,这意味着远程服务器必须能够序列化一个在运行时事先不知道的任意 java 对象。
所以我四处打听,偶然发现了Kryo 序列化库。从Kryo 的文档中,一个主要特性是它在序列化任意 java 对象方面非常健壮。对象
- 不必执行
Serializable
, - 不需要无参数构造函数可反序列化和
- 在序列化之前,我什至不需要了解对象的结构。
android - 无法在 Kryo 中使用泛型字段序列化泛型类
我在 Kryo 遇到了一个奇怪的问题。我可以序列化一个泛型类(如 List)就好了。我什至可以序列化一个没有泛型字段的泛型类。但是,如果我用泛型字段序列化一个泛型类,它就会失败。一个例子应该显示问题。
这是我要序列化的类:
这是测试它的代码。第二次调用 writeClassAndObject() 会引发异常。ArrayList 的写入只是为了证明它可以正常工作。
我得到以下异常:
非常奇怪的是,如果我将“list”的类型从“ArrayList”更改为“T”,它就可以正常工作。Kryo 似乎不知道如何处理 ArrayList 字段。我正在使用 Kryo 3.0.0 版。
谢谢!
java - 将 kryo TaggedFieldSerializer 与从父类继承的字段一起使用
我正在尝试使用TaggedFieldSerializer
Kryo 来序列化/反序列化我想通过线路发送的 POJO。我正在使用POJO 是TaggedFieldSerializer
因为我的 POJO 不断发展,而且我不想在每次更改时都中断序列化。这个 POJO 实际上是父对象的子对象,它使用的继承字段很少。
我的问题是我不想更改父对象以使用Tag
注释来序列化这些字段。Kryo 是否提供了任何东西来适应这种情况?如果没有,我可以使用任何简单的解决方法吗?
更多信息:Kryo 兼容性 Wiki