处理 twitter chill 中的案例类(Scala 到 Kryo 的接口)?

2024-01-08

Twitter-chill 看起来是一个很好的解决方案,可以解决如何在 Scala 中高效序列化而不需要过多的样板文件的问题。

但是,我没有看到任何证据表明他们如何处理案例类别。这是自动工作还是需要做一些事情(例如创建一个零参数构造函数)?

我有一些经验WireFormatScoobi 内置的序列化机制,它是类似于 Scalding 的 Scala Hadoop 包装器。他们为案例类提供最多 22 个参数的序列化器,这些序列化器使用 apply 和 unapp 方法,并对这些函数的参数进行类型匹配以检索类型。 (这在 Kryo/chill 中可能没有必要。)


它们通常可以正常工作(只要组件成员也可以由 Kryo 序列化):

case class Foo(id: Int, name: String)

// setup
val instantiator = new ScalaKryoInstantiator
instantiator.setRegistrationRequired(false)
val kryo = instantiator.newKryo()

// write
val data = Foo(1,"bob")
val buffer = new Array[Byte](4096]
val output = new Output(buffer)
kryo.writeObject(output, data)

// read
val input = new Input(buffer)
val data2 = kryo.readObject(input,classOf[Foo]).asInstanceOf[Foo]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理 twitter chill 中的案例类(Scala 到 Kryo 的接口)? 的相关文章

随机推荐

  • 数据仓库中的时间和日期维度

    I m building a data warehouse Each fact has it s timestamp I need to create reports by day month quarter but by hours to
  • 如何分配线程来处理 Servlet 请求?

    有人可以解释一下什么是每个请求线程和每个连接线程吗 servlet 适用于哪种模型 如何分配线程来处理 HTTP 请求 是线程 请求还是连接 假设我想在我的计算机中执行一项耗时的任务Servlet s doGet 方法异步 我使用 Java
  • 无需预处理器即可扩展 C/C++ 函数宏

    如何在 C C 文件中测试 扩展所有函数宏 而不通过预处理器运行它 例如 是否有一个程序或方法可以改变这一点 include
  • PHP服务器ERR_CONNECTION_REFUSED

    我无法让 php 服务器在我的本地计算机上运行 我尝试使用 wampserver 和 Easy PHP 我检查了我的使用情况port 80 我更改了端口 80 to 8080 我给了 Apache 和 mysql 防火墙设置所需的权限 我做
  • 在 WPF 中将窗口的 DataContext 绑定到窗口本身

    我有一个继承自 Window 的简单对话框窗口 我在 XAML 中设置它的 DataContext 如下所示
  • 从 efi 应用程序发送 TCP 或 UDP 数据包

    我想开发一个在 EFI shell 中从startup nsh 自动执行的应用程序 此应用程序应将原始字节发送到 IP 地址并接收一些返回的字节 我到处寻找在我的代码中实现简单网络协议的解释和示例 但一无所获 有人可以解释并显示使用 gnu
  • C# 构造函数执行顺序

    在 C 中 当你这样做时 Class Type param1 Type param2 base param1 是先执行类的构造函数 然后调用超类构造函数 还是先调用基类构造函数 顺序是 层次结构中所有类的成员变量都初始化为默认值 然后从最派
  • 如何在 Swift 中将 base64String 转换为 String? [复制]

    这个问题在这里已经有答案了 我从 NSData 中的 Web 服务响应接收到一个 base64 字符串 如何在 swift 中将 dat base64 字符串转换为字符串 Code var jsonResult NSJSONSerializ
  • 使用外部数据扩展 Keycloak 中的用户访问令牌

    我们使用 Keycloak 服务作为 SSO 解决方案 并将生成的 JWT 提供给不同的微服务 效果非常好 但现在我们遇到的问题是 当用户尝试登录时 JWT 必须使用来自外部资源的数据进行扩展 更具体地说 一个用户可以通过一个唯一的ID作为
  • 如何使用Wix安装.NET Framework的可再发行包?

    我有一个一般任务 在产品设置过程中安装 NET Framework 3 5 我执行以下操作 我创建了一个自定义操作 X 自定义操作 X 通过 Process Start 启动可执行文件 Y 可执行文件 Y 终止 msiexec 进程并运行
  • LPHANDLE 与 HANDLE

    在浏览一些代码时 我发现了一个调用打开打印机 http msdn microsoft com en us library dd162751 aspx 该代码可以编译并且运行良好 但是 我们正在通过一个HANDLE代替LPHANDLE 如 M
  • 正则表达式匹配 ini 值

    我正在尝试匹配 ini 行值的姓氏 foo bar far boo some value 我可以匹配 boo 但我只需要 boo I do w s 但它匹配等号 但我不希望它匹配 顺便说一句 如果没有像这样的子值 我应该能够得到 foo v
  • 使用子模块创建公共存储库

    我想创建一个包含多个子模块的公共存储库 裸存储库 我希望不同的人克隆这个裸存储库 在任何子模块中进行更改 更新公共存储库 然而 我意识到这是相当痛苦的 我希望我的存储库如下所示 我有四个独立的存储库 a kernel b rootfs c
  • 无法在 XML 文件上 insertBefore

    我正在尝试编写一个脚本来更新 RSS XML 文件 我希望它获取现有文件并将新项目添加到项目列表的顶部 我之前已经将其添加到文件末尾 但现在它根本没有添加新项目 我已经在网上检查过 但仍然无法使其工作 这是我到目前为止所拥有的 rssDoc
  • python 模块存储在哪里?

    我最近开始学习Python 有两个与模块相关的问题 有没有办法获取机器上可用 即安装 的Python模块列表 我使用 Ubuntu Karmic 和 Synaptic 进行包管理 我刚刚安装了一个 python 模块 模块代码实际存储在我的
  • 能让代码分析理解代码契约吗?

    当组合使用代码分析和代码契约时 我收到很多警告 例如 CA1062 http msdn microsoft com en us library ms182182 aspx Microsoft Design 在外部可见的方法 Foo Bar
  • ggmap,使用 coord_cartesian 将所有点推向北方

    正如标题所说 当我添加时coord cartesian到我的 ggmap 它将我所有的点都向上移动 这是一些数据 pricedata lt structure list nodename c CIN WABRIVR 2 CIN WHEATC
  • Julia v0.6 函数内部宏

    有人可以解决我遇到的这个宏错误吗 它只在版本 0 6 中开始发生 mutable struct Foo x Int end macro test myfoo quoteblock quote myfoo x 1 end return quo
  • 如何从另一个数据框中获取值的行列名称

    给定一个范围表 start end name blue green yellow purple a 1 5 654 678 11 15 b 88761 88776 c 1211 1215 38 47 d 89 95 1567 1578 和一
  • 处理 twitter chill 中的案例类(Scala 到 Kryo 的接口)?

    Twitter chill 看起来是一个很好的解决方案 可以解决如何在 Scala 中高效序列化而不需要过多的样板文件的问题 但是 我没有看到任何证据表明他们如何处理案例类别 这是自动工作还是需要做一些事情 例如创建一个零参数构造函数 我有