问题标签 [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.
python - 写入无效的 avro 文件:长度为负数:-40
我正在尝试从 python 编写一个 avro 文件,大部分都遵循官方教程。
我有一个似乎是有效的模式:
这是相关代码
但是,当我尝试使用 cli avro-tools 读取此文件的输出时:
我收到以下错误:
我很确定相关的错误是
但我不能说我做错了什么。我怀疑我正在错误地编写 avro 文件。
我想写入字节数组(而不是像示例中那样直接写入文件),因为最终我将使用boto3
.
java - AVRO 工具 1.8.2 - 给出错误原因:java.io.IOException:无效同步!在第 245 行
我需要合并 avro 文件并将其推送到 Azure blob 存储。我将它合并,然后我尝试再次阅读它,但我得到了错误。
我有一个文件,其中使用 snappy 组合了 avro 文件。运行以下命令时:
我收到一个错误
我调试了代码和下面的行,其中 syncBufferis 与 header.sync 进行比较是有问题的。任何想法可能是什么问题。
avro - Avro DataFileWriter API 元数据
我已经准备了使用 deflateCodec 压缩的 AVRO 数据,当我准备 10 批数据时,每次我准备将模式定义添加到文件中时,是否可以避免添加模式定义。
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 中,所以我尝试了不同的组合,但似乎没有一个有效。
hadoop - 如何将 hdfs 中的现有文本数据转换为 Avro?
我有一个以文本格式存储的 hdfs 表,所以现在我需要在其间添加新列。所以我想在 avro 中加载新列,因为 Avro 支持模式演变,但现在以前的数据仍然是文本格式。
avro - 如何在 Avro 模式中指定范围?
我正在使用 Avro 架构,但我不确定如何指定特定记录的范围。
假设这个“经度”只能取 0 到 100 之间的值。如何在 Avro 模式中提及经度范围?
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 ),但这意味着我永远无法从我的模式定义中重新编译。
java - 如何验证具有不同架构的 Avro 格式数据
1)如果我们要使用 schema1 验证上面的 json,它应该说 true
2)如果我们要使用schema2验证上面的json,它应该说false,因为“age”字段根据模式是int,但在json中它是字符串
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 上使用了命令行。
有人知道这里到底发生了什么吗?
更新:如果我在 Cloudera VM 上而不是在 Windows 上进行转换,则转换有效。在生成的 Avro 文件中,只有开头的几处不同。
apache - Avro 消息中的模式
我看到 Avro 消息嵌入了架构,然后是二进制格式的数据。如果发送了多条消息并且为每条消息创建了新的 avro 文件,那么 Schema 不是嵌入开销吗?那么,这是否意味着,生产者对消息进行批处理然后写入总是很重要的,所以将多条消息写入一个 avro 文件,只携带一个模式?另一方面,是否有一个选项可以在使用 Generic/SpecificDatum 编写器进行序列化时消除模式嵌入?