问题标签 [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 回答
2049 浏览

python - 写入无效的 avro 文件:长度为负数:-40

我正在尝试从 python 编写一个 avro 文件,大部分都遵循官方教程

我有一个似乎是有效的模式:

这是相关代码

但是,当我尝试使用 cli avro-tools 读取此文件的输出时:

我收到以下错误:

我很确定相关的错误是

但我不能说我做错了什么。我怀疑我正在错误地编写 avro 文件。

我想写入字节数组(而不是像示例中那样直接写入文件),因为最终我将使用boto3.

0 投票
0 回答
1399 浏览

java - AVRO 工具 1.8.2 - 给出错误原因:java.io.IOException:无效同步!在第 245 行

我需要合并 avro 文件并将其推送到 Azure blob 存储。我将它合并,然后我尝试再次阅读它,但我得到了错误。

我有一个文件,其中使用 snappy 组合了 avro 文件。运行以下命令时:

我收到一个错误

我调试了代码和下面的行,其中 syncBufferis 与 header.sync 进行比较是有问题的。任何想法可能是什么问题。

0 投票
0 回答
100 浏览

avro - Avro DataFileWriter API 元数据

我已经准备了使用 deflateCodec 压缩的 AVRO 数据,当我准备 10 批数据时,每次我准备将模式定义添加到文件中时,是否可以避免添加模式定义。

0 投票
2 回答
10155 浏览

avro - org.apache.avro.AvroTypeException:未知的联合分支

我正在使用这个 Avro 模式:

价格状态.avsc

它在这个网站上正确验证,所以我假设架构是有效的。

我在构建 JSON 文件时遇到问题,然后应该使用上述模式对其进行编码。

我正在使用这个 JSON 进行一些测试:

测试.json

跑步时java -jar avro-tools-1.8.2.jar fromjson --schema-file prices-state.avsc test.json我得到:

线程“主”org.apache.avro.AvroTypeException 中的异常:未知联合分支 markup_strategy

我在这里读到,由于 JSON 编码,我必须将东西包装在 union 中,所以我尝试了不同的组合,但似乎没有一个有效。

0 投票
1 回答
1091 浏览

hadoop - 如何将 hdfs 中的现有文本数据转换为 Avro?

我有一个以文本格式存储的 hdfs 表,所以现在我需要在其间添加新列。所以我想在 avro 中加载新列,因为 Avro 支持模式演变,但现在以前的数据仍然是文本格式。

0 投票
0 回答
549 浏览

avro - 如何在 Avro 模式中指定范围?

我正在使用 Avro 架构,但我不确定如何指定特定记录的范围。

假设这个“经度”只能取 0 到 100 之间的值。如何在 Avro 模式中提及经度范围?

0 投票
2 回答
3238 浏览

java - Avro - 如何为 SpecificCompiler 注册自定义 LogicalType

嘿 avro 用户和专家,

我想使用 avrologicalTypes,意味着我自己创建一些 - 不仅仅是使用内置的。

问题是如何让编译器从架构生成代码以使用我自己创建的代码

我创建了我的架构(相关部分):

(当然还有创建类型和转换,参见https://github.com/markush81/avro-examples

我现在不知道如何配置编译器来使用它

我通过 gradle 插件使用编译器(但我想这首先没有任何区别)

感谢您提供任何提示(或解决方法)。

PS:当然我知道如何操作生成的类来支持我的逻辑类型(见:https ://github.com/markush81/avro-examples/tree/master/src/main/manual ),但这意味着我永远无法从我的模式定义中重新编译。

0 投票
0 回答
1423 浏览

java - 如何验证具有不同架构的 Avro 格式数据

1)如果我们要使用 schema1 验证上面的 json,它应该说 true

2)如果我们要使用schema2验证上面的json,它应该说false,因为“age”字段根据模式是int,但在json中它是字符串

0 投票
1 回答
1966 浏览

java - java.io.IOException 使用 Avro 工具将 JSON 转换为 Avro 后不是数据文件

我有一个 JSON 文件和一个 avro 模式文件,它正确地描述了它的结构。然后,我使用 Avro 工具将 JSON 文件转换为 avro 文件,而不会出现错误,如下所示:

然后我将生成的 Avro 文件转换回 JSON 以验证我是否得到了一个有效的 Avro 文件,如下所示:

这会引发错误:

在执行“getschema”或“getmeta”以及使用 avro-tools-1.8.2 或 avro-tools-1.7.4 时,我也会遇到同样的异常。我还尝试了多对不同的 json 和模式数据,我检查了它们的有效性。

此处抛出错误(在 Avro 工具中):

由于开头有几个字符,(二进制)Avro 文件似乎与预期的 Avro 文件不匹配。

我已经检查了有关此错误的所有其他 stackoverflow 问题,但没有一个有帮助。我在 Windows 10 PowerShell 上使用了命令行。

https://www.michael-noll.com/blog/2013/03/17/reading-and-writing-avro-files-from-the-command-line/#json-to-binary-avro

有人知道这里到底发生了什么吗?

更新:如果我在 Cloudera VM 上而不是在 Windows 上进行转换,则转换有效。在生成的 Avro 文件中,只有开头的几处不同。

0 投票
2 回答
1729 浏览

apache - Avro 消息中的模式

我看到 Avro 消息嵌入了架构,然后是二进制格式的数据。如果发送了多条消息并且为每条消息创建了新的 avro 文件,那么 Schema 不是嵌入开销吗?那么,这是否意味着,生产者对消息进行批处理然后写入总是很重要的,所以将多条消息写入一个 avro 文件,只携带一个模式?另一方面,是否有一个选项可以在使用 Generic/SpecificDatum 编写器进行序列化时消除模式嵌入?