问题标签 [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.

0 投票
1 回答
342 浏览

scala - Avro 没有为 Array 类型填充方括号

我有以下 Avro 架构:

我正在使用它从文本文件中生成 Avro 消息:

一切正常,我得到给定消息的以下输出:

但是,当我声明data字段类型时,array我期望它像集合一样包裹在方括号中。就像是:

我希望将data文件括在方括号中。我怎样才能做到这一点?

0 投票
1 回答
2310 浏览

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 类,但我需要做相反的事情。

在此先感谢您的帮助

0 投票
1 回答
932 浏览

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?

0 投票
3 回答
582 浏览

scala - 从 ScalaPB 生成的 Scala 案例类派生 Avro 模式

我正在尝试使用Avro4s从ScalaPB生成的案例类(来自 Protobuf 定义)派生 Avro Schema ,但未能成功。下面的示例显示了该问题。

我的 protobuf 文件test.proto

Test我使用 ScalaPB生成案例类:

然后尝试导出 Avro Schema,如下所示:

我收到以下错误:

我怎么能在这里成功?是否有任何其他实用程序可以实现相同的目标?

0 投票
2 回答
493 浏览

apache-kafka - 尝试使用 avro4s 定义序列化程序但缺少隐式错误

我正在使用 flink(1.7) kafka 客户端和 Avro4s(2.0.4),我想序列化为字节数组:

但是我不断收到此异常:

0 投票
1 回答
4069 浏览

apache-kafka - 带有可选记录的 AVRO 模式

大家好,我需要为以下示例创建 AVRO 模式;

事故和所有者是可选对象,创建的模式还需要验证以下子集消息;

我阅读了 AVRO 规范并看到了很多可选的属性和数组示例,但它们都没有为记录工作。如何将记录定义为可选?谢谢。

没有任何可选属性的以下模式正在工作。

当我按照建议更改 Owner 对象时,avro-tool 返回错误。

] }

测试:

0 投票
0 回答
77 浏览

scala - Avro4s:匿名函数的参数类型必须是完全已知的。(SLS 8.5)

我正在尝试使用avro4s FieldMapper映射案例类的字段。

但我收到以下错误:

我发现与此错误相关的类似问题:

但是,我无法为我的特定问题找到解决方案。

任何帮助表示赞赏!

0 投票
1 回答
621 浏览

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”

0 投票
1 回答
329 浏览

scala - 如何从 avro4s 3.0.4 迁移到 4.0.0-RC2?

如何从 avro4s 3.0.4 迁移到 4.0.0-RC2?我有以下编译错误:

0 投票
1 回答
85 浏览

scala - 隐式对象内联工作,但在导入时不工作

avro4s用来帮助 avro 序列化和反序列化。

我有一个包含Timestamps 的案例类,需要在将记录发布到 Kafka 之前将这些Timestamps 转换为格式良好的字符串;默认编码器正在将我Timestamp的 s 转换为Longs。我读到我需要编写一个解码器和编码器(来自avro4s自述文件)。

这是我的案例类:

我编写了以下编码器:

Test.scala

如果我像上面所做的那样声明 my implicit objectin line,它会创建GenericRecord我正在寻找的那个。我试图将其抽象implicit object为一个文件,包装在一个对象中,并import Implicits._使用我的自定义编码器。

Implicits.scala

Test.scala

它无法使用我的编码器(没有达到我的断点)。我已经尝试了无数的方法来尝试看看为什么它没有成功。

如何正确导入隐式对象?

有没有更简单的解决方案来将我case class的 s编码TimestampStrings 而无需为整个 s 编写编码器case class