问题标签 [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.
java - 如何使 Avro 模式中的所有字段都可以为空?
使 Avro 模式中的所有字段都可以为空的最短和最安全的方法是什么?当然,我可以使用模式的 Json 并且只是做 like schema.toString().replaceAll("\"type\": \"long\"", "\"type\": [\"null\", \"long\"]")
,但这是非常丑陋和不安全的解决方案。
java - Avro ReflectData 将记录定义覆盖为逻辑类型
我正在使用 ReflectData 从 Java 类生成模式。其中一个领域是
并且 reflectData 生成等效代码作为记录
我想使用下面架构上的一些操作来覆盖类的行为,以便
生成的架构正在引用如下的逻辑类型日期
...
增加了一些尝试
apache-spark - Spark 2.4.1 无法从 HDFS 读取 Avro 文件
我有一个简单的代码块来编写然后以 Avro 格式读取数据帧。由于 Spark 2.4.x 中已经内置了 Avro 库,
Avro 文件写入成功,文件在 HDFS 中生成。但是,当我读取文件时会引发 AbstractMethodError 异常。谁能分享我一些光?
我通过在我的 Zeppelin nodebook Spark 解释器中添加包 org.apache.spark:spark-avro_2.11:2.4.1 来使用 Spark 内部库。
我的简单代码块:
我看到的错误信息:
java - Avro - java.io.IOException:不是数据文件
我正在使用https://github.com/allegro/json-avro-converter将我的 json 消息转换为 avro 文件。调用 convertToAvro 方法后,我得到一个字节数组:byte[] byteArrayJson。然后我使用 Apache 的公共库:
文件已创建。当我尝试将其重新转换为 json 时,使用:
我创建了一个 Junit 测试并使用 convertToJson 方法(来自上一个链接)并断言字符串,一切正常。但是对于罐子它不起作用。难道我做错了什么?我使用的是 cmd,而不是 powerShell,因为我在 SO 帖子中看到这可以更改编码。我认为问题出在编码上,但我不知道在哪里看。(我使用 Windows 作为操作系统)
scala - Avro Schema:从 Schema 字段构建 Avro Schema
我正在尝试编写一个函数来计算两个 avro 模式之间的差异并生成另一个模式。
获取 schema_one 中的元素字段而不是 schema_two
到目前为止,一切都很好。
我想从 diff 构建一个新模式,我希望它是:
我似乎无法在 Avro 中找到任何方法SchemaBuilder
来实现这一点,而无需显式提供命名字段。即构建Schema
给定Schema.Field
的s
例如:
有没有办法做到这一点?欣赏评论。
json - 如何将 json 模式转换为 avro 模式
我的应用程序一直在使用 json 模式 (org.everit.json.schema.Schema ) 来验证 JSON 消息是否符合特定格式。我们现在正在考虑迁移到 Avro 模式。这涉及将以前存储的 schema.json 文件转换为 Avro 模式 schema.avsc。此外,当前的行为是我们通过 API /schema/create 获取 JSON 格式的模式,并在使用 SchemaLoader 验证它后将其存储为 schema.json 格式,例如 SchemaLoader.load(JSONObject obj)。
我们还需要一种将 schema.json 转换为 schema.avsc 的方法,因为我们通过 API 接收它的运行时间。我们可以使用任何实用程序/工具将 schema.json 转换为 schema.avsc 吗?
avro - 具有空对象的记录类型的 Avro 模式
我正在尝试为以下 json 创建 avro 架构
错误对象是可选的,它可能是“错误”:{} 下面是没有默认值的 avro 架构
如何为 json 中的错误字段添加默认值 {}。
scala - 为 avro 模式创建十进制逻辑类型和字节类型的 json 表示
我正在尝试根据以下 avro 模式创建 JSON 字符串,用于十进制值。 https://avro.apache.org/docs/1.8.2/spec.html#Logical+Types
价值
我得到了例外
如果我给出“\u0000”而不是 3.4,那么它可以工作,但这是 0 的表示,我将如何获得 3.4 的表示?现在我正在创建硬编码的 JSON 字符串,但将来我必须将输出转换为十进制,我如何在 scala 中做到这一点。
有没有办法将值转换为十进制逻辑格式?
java - 用于 Avro 工具的 Scala 类加载器运行用 Java 编写的方法
我在确定加载“Avro Tools”类及其run
方法的方法时遇到了一些困难。问题出在 java 和 scala 接口和类加载方法之间。由于 avro 在 Spark 应用程序的其他地方使用不同版本来加载数据文件,因此我需要能够将此特定方法视为对另一个版本的 avro-tools 的孤立调用。
以下是我的代码:
我似乎在调用方法部分有一些问题,但也许整个解决方案有点偏离 - 我需要能够调用该方法以及加载、实例化或......
如何解决此问题以运行整个代码段(并修复损坏的 avro)?