问题标签 [avro-tools]

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 投票
2 回答
23746 浏览

java - 在 avro 文件中存储空值

我有一些看起来像这样的 json 数据:

我能够毫无问题地将lockedQuery null 值添加到GenericRecord 对象。

但是,稍后当我尝试将该 GenericRecord 对象写入 avro 文件时,我得到一个空指针异常。

当我运行该代码时,我得到以下异常。非常感谢有关如何将空值处理为 Avro 文件的任何提示。提前致谢。

编辑:这是 MyAvroRecord

0 投票
1 回答
1152 浏览

apache-kafka - apache avro-tools 无法解码 Logstash avro 输出

我是 Logstash 和 Avro 的初学者。我们正在建立一个系统,其中 logstash 作为 kafka 队列的生产者。但是,我们遇到了一个问题,即 Logstash 产生的 avro 序列化事件无法被 apache 提供的 avro-tools jar(版本 1.8.2)解码。此外,我们注意到 Logstash 和 avro-tools 的序列化输出不同。

我们有以下设置:

  • Logstash 5.5 版
  • logstash avro 编解码器版本 3.2.1
  • 卡夫卡版本 0.10.1
  • avro-tools jar 版本 1.8.2

例如,考虑以下架构:

和以下 json 字符串:

使用 Logstash 进行序列化时。Logstash 配置文件:

输出(使用猫):

使用 avro-tools 进行序列化时。命令:

输出

命令:

输出:

所以我们的问题是:我们如何配置 Logstash 以使输出与 apache avro-tools jar 兼容?

更新:我们发现 logstash 产生的 avro 输出是 base64 编码的。但是找不到发生这种情况的位置,以及如何使其与 avro-tools 兼容

0 投票
1 回答
934 浏览

java - 基于java文件生成Avro文件

有些插件可以使用 Avro 模式生成 java 文件。有没有相反的情况?我想基于 java 文件生成 Avro 模式。

0 投票
1 回答
1181 浏览

apache-kafka - 无法打印 Kafka Avro 解码消息

我有一个基于 C++ 的遗留系统,它输出支持融合 Avro 模式注册表格式的二进制编码 Avro 数据。在我的 Java 应用程序中,我使用 KafkaAvroDeserializer 类成功地反序列化了消息,但无法打印出消息。

我得到的输出是

为什么我无法打印反序列化数据?任何帮助表示赞赏!

0 投票
2 回答
4020 浏览

java - 如何将“org.apache.avro.generic.GenericRecord”转换为“java.util.Map”?

将“org.apache.avro.generic.GenericRecord”转换为“java.util.Map”的简单方法

0 投票
4 回答
25929 浏览

json - 有没有办法以编程方式将 JSON 转换为 AVRO Schema?

我需要创建 AVRO 文件,但为此我需要两件事:

1)JSON

2) Avro 架构

从这两个要求 - 我有 JSON:

但是如何基于它创建 AVRO Schema 呢?

寻找程序化的方式来做到这一点,因为会有很多模式并且不能每次都手动创建 Avro 模式。

我检查了“avro-tools-1.8.1.jar”,但无法直接从 JSON 创建 Avro Schema。

寻找可以创建 JSON -> Avro 模式的 Jar 或 Python 代码。如果数据类型不完美也没关系(字符串、整数和浮点数足以开始)。

0 投票
0 回答
116 浏览

java - Avro:字段的自定义反序列化器

我有一个 avro 模式,其中以下字段之一:

现在,当我反序列化值为“1234567891234567”的记录时,它会像这样反序列化:

有什么方法可以在反序列化期间指定格式/配置?下面是我的反序列化代码:

0 投票
2 回答
466 浏览

python-3.x - Python3 apache avro 1.8.2 不提供别名

我有以下 python3 avro 程序:

内容users如下:

我原以为它会在first_name现场有“Ben”和“Alyssa”。这个库中的别名是如何工作的?这是遵循规范吗?

0 投票
1 回答
839 浏览

avro - Avro 模式记录字段名称从数字开始

Avro 文档说:

全名的名称部分、记录字段名称和枚举符号必须:

  • 以 [A-Za-z_] 开头
  • 随后仅包含 [A-Za-z0-9_]

是否有可能以某种方式逃避第一条规则并让记录字段名称以数字开头,即123ColumnName?也许通过“转义”或特殊的“符号”?

0 投票
1 回答
803 浏览

python - 当属性匹配时,如何使用 Python 序列化 Avro 中的联合字段

假设您将此 AVDL 作为简化示例:

在 python 中,您无法正确序列化说明类型的对象,因为不允许使用以下语法:

唯一被序列化的对象是

丢失所有类型信息和DatumWriter拾取通常是匹配字段集的第一条记录,在本例中为 a Man

上述问题在使用 Java API 时效果很好。

那么,我在这里做错了什么?序列化和反序列化是否可能在 Python 的 Avro 实现中不是幂等的?