问题标签 [avrohugger]
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.
java - 从具有超过 254 个字段的模式 avro 生成平面案例类
我正在研究一个平面模式,里面没有嵌套类型,它有超过 254 个字段。
目标:我想做的是通过特定的生成器自动将这种模式转换为平面案例类
问题:JVM 中参数列表的长度不能超过 254
我试过的 => 使用插件sbt-avrohugger和sbt-avro4s,但它们的效果并不好。
问:有没有办法实现目标?
scala - 使用 sbt-avrohugger 生成 scala avro 特定记录
我正在尝试生成SpecificRecord
使用
sbt-avrohugger实现的 Scala 案例类。当我有一个干净的石板并且我只有 src/main/avro 中的 avro 文件时,它的效果非常好。但我有点坚持为 avro 的增量更改生成 scala 类。我在用
我的 build.sbt 有:
1)有没有办法为avro的增量更改生成scala案例类而不删除现有的scala类(必须这样做,否则当我编译时,它抱怨说
[错误] /Users/me/project/myschemas/scalacaseclasses/com/project/schemas/user/User.scala:6: User 已经定义为案例类 User )。用干净的石板重新开始时,它不会抱怨。
基本上我的情况是我有一堆 avros:用户、访问者和其他一些类。假设我在第一个版本的用户中有名称和 ID,然后我为用户添加了地址。我想知道这是否可以为已经存在的类重新生成案例类。
或者实现这一点的唯一方法是为每个新的 avro 文件生成案例类。
PS:我已经有一个解决方法,我在每个新的 avro 文件上循环并复制新的类,但我想看看是否有更好的方法来做到这一点!
java - 当提供给案例类的主要构造函数超过 254 列时,使用 Avrohugger 生成的 scala 类失败
我们正在使用 Avrohugger 工具从 Avro 模式生成 scala 类文件。但是 scala 类文件在编译期间因“JVM Spec Violation 255 Parameter Limit Exceeded”而失败。
我已经尝试了多种选择来解决这个问题,但仍然没有解决方案。
一种方法是将剩余的主构造函数(256(列总数)- 254(允许的列))添加为案例类中的字段。当我尝试访问案例类中的字段时,我收到另一个错误为“未知参数名称 XXX enter code here
”(XXX 是在案例类中定义的字段)“256 个参数,但预期有 254 个参数”(这是因为我在案例类中放置了 254 个参数作为主要构造函数,并将 2 个附加参数作为值)。
我如何使用 Avrohugger 解决这个问题。
我已经创建了 scala Schema 文件并编辑了 scala 文件,但是在检索案例类的主体内定义的其他列时失败。
修改后的文件如下所示:
此模式在代码中用作:
}