问题标签 [scala-pickling]
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.
scala - Scala 编译期间出现内存不足错误
我正在使用大量宏scala-pickling
和shapeless
,并且我不断使 Scala 2.10.3 编译器崩溃,并出现明显的内存不足错误。错误消息的尾部如下所示:
我正在监视我的系统内存,而且内存很多,所以如果这真的是内存分配的问题,我猜我可以在某个地方设置一些 JVM 标志来解决问题。
但是,我尝试通过将paulp 的 sbt脚本中的堆设置调整为 来增加可用内存,但-Xmx8g
我仍然收到此错误。这是正确的标志吗?
想法?
编辑:我添加了“scala-pickling”和“shapeless”标签,因为这是这些库的其他用户可能遇到的。
scala - Scala酸洗:我自己的班级的简单自定义酸洗器?
我正在尝试在我的 Scala NLP(自然语言处理)应用程序中挑选一些结构相对简单但创建速度较慢的类。因为有很多数据,所以需要pickle和esp。快速解开,不会膨胀。Java 序列化在这方面显然很糟糕。我知道 Kryo,但我从未使用过它。我也遇到过 Apache Avro,它看起来很相似,但我不太确定为什么它通常不被称为合适的解决方案。也不是 Scala 特定的,我看到有一个名为 Scala Pickling 的特定于 Scala 的包。不幸的是,它几乎没有所有文档,我不确定如何创建自定义pickler。
我在这里看到一个问题:
Scala Pickling:为嵌套结构编写自定义pickler / unpickler
这个问题仍然缺少一些上下文,而且与为 Kryo 或 Avro 给出的示例相比,创建自定义pickler 的样板文件看起来非常多。
这是我需要序列化的一些类:
我将如何以使用尽可能少的样板的方式创建自定义选择器/取消选择器(因为我有许多其他需要类似处理的类)?
谢谢!
java - 不能腌制数组,但可以在 Scala 中使用腌制腌制列表
我写了这个方法:
这给了我这个错误:
但是,如果我将所需的类型更改为 List[Track] 并在调用它之前调用 toList ,它就可以完美地工作。Track是这个案例类:
我做错了什么还是这是酸洗的限制?
scala - 将类移动到另一个包后出现 MissingRequirementError
所以我试图更好地组织我的包,在将一些类移动到另一个包之后,我的代码现在给了我这个异常:
如果我将所有内容都放在同一个包中或在同一个文件中声明这些类,它就可以正常工作。
有人可以告诉我如何解决这个问题吗?
已解决:如果也有这个问题,问题在于 Pickling 如何序列化。在 json 中,有一个字段 'tpe' 用于类型,它从
至
这是新包(不是我的包名)。希望这个例子可以在未来帮助其他人。
scala-pickling - 无法为具有不可变 HashMaps 的案例类生成 unpickler
我最近遇到了 scala-pickling,我正在尝试了解如何在项目中使用它,所以我一直在研究一个带有不可变哈希图的案例类的简单示例。在这个例子中,scala-pickling 不会生成 unpickler,我不知道为什么。以下是演示该问题的 REPL 会话:
谁能指出我做错了什么?或者 scala-pickling 有什么问题吗?
编辑:实际上,当我生成一个具有一个属性的类时,似乎也会发生同样的情况,该属性只是一个符号(我将发布另一个 REPL 会话)。有没有一种特殊的方法来处理 scala-pickling 中的符号?
scala - Scala 从字符串中解压
我尝试了以下单元测试。
第一次测试testUnpickleJsonPickleFormat
效果很好。它腌制一个字符串并解开腌制。
testUnpickleString{1,2}
测试以反序列化字符串。但它们根本不起作用。我不知道哪里有什么想念我的。
我不知道如何在 Scala Pickle 框架中使用 unpickle。
scala - 类型未知时取消酸洗
我正在尝试使用 Scala Pickling 来编写一些通用的 unpickling 逻辑。
假设您有两种类型,A 和 B,然后将它们腌制到一个字节数组中。
你把这个字节数组发送到另一台机器,然后作为字节数组接收。
现在你需要 unpickle 它,但是你不知道字节数组是用于类型 A 还是类型 B。
您将如何对拆开部分进行编程?你是否让 A 和 B 扩展另一种类型,比如 T,然后调用 unpickle[T],然后对 A 或 B 的结果进行模式匹配?
或者你是否向 T 添加了一个实例变量,比如一个 Byte,它对 A 或 B 类型的实例使用不同的数字,并基于此调用 unpickle[A] 或 unpickle[B]?
更新:查看 Scala Pickling 测试套件,我发现最接近的是base.scala,它有点遵循第一个选项。
scala - Scala酸洗:如何?
我正在尝试使用“酸洗”序列化是 Scala,我看到相同的示例演示它:
解酸就像酸洗一样简单:
这个例子提出了一些问题。首先,它跳过了对象到字符串的转换。显然你需要调用 pckl.value 来获取 json 字符串表示。
Unpickling 更加令人困惑。反序列化是将字符串(或字节)转换为对象的行为。如果没有对象的字符串/二进制表示,这个“示例”如何演示反序列化?
那么,如何使用酸洗库反序列化简单对象?
scala - 非平凡情况下的 scala 酸洗
腌那个?
发生了什么?
qed
scala/pickling 的好处是它在某些情况下有效。