问题标签 [avro4s]
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 - Avro 没有为 Array 类型填充方括号
我有以下 Avro 架构:
我正在使用它从文本文件中生成 Avro 消息:
一切正常,我得到给定消息的以下输出:
但是,当我声明data
字段类型时,array
我期望它像集合一样包裹在方括号中。就像是:
我希望将data
文件括在方括号中。我怎样才能做到这一点?
scala - 在构建时从 scala 案例类生成 avsc avro 模式
我想从 scala 案例类生成一个 avro 模式。
假设我有以下 scala 案例类:
case class User(name : String, favorite_number: Int, favorite_color: String)
相关的 avro 架构是:
有没有办法在构建时生成 avro scehma ?例如使用 sbt 吗?我看到sbt-avro4s允许从 avro 模式构建 scala 类,但我需要做相反的事情。
在此先感谢您的帮助
scala - Scala:如何使用 avro4s 将嵌套/复杂数据转换为 avro?
我有 Scala 2.12 并按照我的要求的链接导入了库 avro4s 。
基本上,我的 avro 架构如下: 仅示例:
所以我创建了 3 个案例类。
我基于这些类测试了架构,看起来还不错。
所以,模式生成是好的。
现在,我正在根据案例类创建所需的对象。
当我尝试编写 avro 文件时,出现空指针异常。
错误:
代码:
基本上,根据我拥有的架构,我想了解我的最终记录对象应该如何?
更新:
根据@Antot 和@Daniel 的以下建议,我将标题和正文类更改为对所有预期为空的值使用 Option[String]。但仍然是同样的问题。
对标头和数据的案例类的更改,产生以下模式和记录。以下记录是否正确创建?
请指教?
更新 2:
我认为 Null 的问题。预计记录的属性很少为 NULL。由于我更改为 Option[String],它的值应该是 None 而不是 null。我是 Scala 的新手,所以仍然了解它的数据类型。
因此,现在可以将值从 null 更改为 None。
但是,我还有一个问题。如果我的属性是 Option[String],它如何转换为 Avro?如果我的值为 None,它是否会转换为 Avro null?
apache-kafka - 尝试使用 avro4s 定义序列化程序但缺少隐式错误
我正在使用 flink(1.7) kafka 客户端和 Avro4s(2.0.4),我想序列化为字节数组:
但是我不断收到此异常:
和
apache-kafka - 带有可选记录的 AVRO 模式
大家好,我需要为以下示例创建 AVRO 模式;
事故和所有者是可选对象,创建的模式还需要验证以下子集消息;
我阅读了 AVRO 规范并看到了很多可选的属性和数组示例,但它们都没有为记录工作。如何将记录定义为可选?谢谢。
没有任何可选属性的以下模式正在工作。
当我按照建议更改 Owner 对象时,avro-tool 返回错误。
] }
测试:
scala - Avro4s:匿名函数的参数类型必须是完全已知的。(SLS 8.5)
我正在尝试使用avro4s FieldMapper映射案例类的字段。
但我收到以下错误:
我发现与此错误相关的类似问题:
- Scala:扩展函数的类型缺少参数类型匿名函数的参数类型必须是完全已知的。(SLS 8.5)
- Scala 缺少扩展函数的参数类型匿名函数的参数类型必须是完全已知的。(SLS 8.5)
- 匿名函数的参数类型必须是完全已知的。(SLS 8.5)
但是,我无法为我的特定问题找到解决方案。
任何帮助表示赞赏!
scala - avro4s:找不到参数 schemaFor 的隐式值:com.sksamuel.avro4s.SchemaFor[T]
我的要求需要上课,应该使用avro4s返回一个 avro-schema 。下面是代码,我正在尝试:
我们的想法是实现这样的目标
我怎样才能解决这个问题?
错误 - 找不到参数 schemaFor 的隐式值:com.sksamuel.avro4s.SchemaFor[T]
斯卡拉版本 - 2.12.8
Avro4s-“com.sksamuel.avro4s”%%“avro4s-core”%“3.1.1”
scala - 如何从 avro4s 3.0.4 迁移到 4.0.0-RC2?
如何从 avro4s 3.0.4 迁移到 4.0.0-RC2?我有以下编译错误:
scala - 隐式对象内联工作,但在导入时不工作
我avro4s
用来帮助 avro 序列化和反序列化。
我有一个包含Timestamp
s 的案例类,需要在将记录发布到 Kafka 之前将这些Timestamp
s 转换为格式良好的字符串;默认编码器正在将我Timestamp
的 s 转换为Long
s。我读到我需要编写一个解码器和编码器(来自avro4s
自述文件)。
这是我的案例类:
我编写了以下编码器:
Test.scala
如果我像上面所做的那样声明 my implicit object
in line,它会创建GenericRecord
我正在寻找的那个。我试图将其抽象implicit object
为一个文件,包装在一个对象中,并import Implicits._
使用我的自定义编码器。
Implicits.scala
Test.scala
它无法使用我的编码器(没有达到我的断点)。我已经尝试了无数的方法来尝试看看为什么它没有成功。
如何正确导入隐式对象?
有没有更简单的解决方案来将我case class
的 s编码Timestamp
为String
s 而无需为整个 s 编写编码器case class
?