问题标签 [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 投票
1 回答
848 浏览

java - 如何使 Avro 模式中的所有字段都可以为空?

使 Avro 模式中的所有字段都可以为空的最短和最安全的方法是什么?当然,我可以使用模式的 Json 并且只是做 like schema.toString().replaceAll("\"type\": \"long\"", "\"type\": [\"null\", \"long\"]"),但这是非常丑陋和不安全的解决方案。

0 投票
0 回答
1033 浏览

java - Avro ReflectData 将记录定义覆盖为逻辑类型

我正在使用 ReflectData 从 Java 类生成模式。其中一个领域是

并且 reflectData 生成等效代码作为记录

我想使用下面架构上的一些操作来覆盖类的行为,以便

生成的架构正在引用如下的逻辑类型日期

...

增加了一些尝试

0 投票
2 回答
401 浏览

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 内部库。

我的简单代码块:

我看到的错误信息:

0 投票
2 回答
3972 浏览

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 作为操作系统)

0 投票
1 回答
511 浏览

scala - Avro Schema:从 Schema 字段构建 Avro Schema

我正在尝试编写一个函数来计算两个 avro 模式之间的差异并生成另一个模式。

获取 schema_one 中的元素字段而不是 schema_two

到目前为止,一切都很好。

我想从 diff 构建一个新模式,我希望它是:

我似乎无法在 Avro 中找到任何方法SchemaBuilder来实现这一点,而无需显式提供命名字段。即构建Schema给定Schema.Field的s

例如:

有没有办法做到这一点?欣赏评论。

0 投票
0 回答
594 浏览

apache-nifi - 使用 NiFi 中的 ExecuteSQL 处理器在 Avro 文件中更改数据类型

我正在尝试使用 ExecuteSQL 处理器从 SQL Server 生成 Avro 文件。生成的 Avro 文件将日期、日期时间、varchar 数据类型转换为字符串数据类型。示例:

{"name":"Date","type":["null","string"]},{"name":"WeekBegin","type":["null","string"]}

任何人都可以请提出一些解决方案。

executeSQL 处理器配置如下:

在此处输入图像描述

0 投票
1 回答
7488 浏览

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 吗?

0 投票
1 回答
539 浏览

avro - 具有空对象的记录类型的 Avro 模式

我正在尝试为以下 json 创建 avro 架构

错误对象是可选的,它可能是“错误”:{} 下面是没有默认值的 avro 架构

如何为 json 中的错误字段添加默认值 {}。

0 投票
1 回答
2250 浏览

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 中做到这一点。

有没有办法将值转换为十进制逻辑格式?

0 投票
1 回答
88 浏览

java - 用于 Avro 工具的 Scala 类加载器运行用 Java 编写的方法

我在确定加载“Avro Tools”类及其run方法的方法时遇到了一些困难。问题出在 java 和 scala 接口和类加载方法之间。由于 avro 在 Spark 应用程序的其他地方使用不同版本来加载数据文件,因此我需要能够将此特定方法视为对另一个版本的 avro-tools 的孤立调用。

以下是我的代码:

我似乎在调用方法部分有一些问题,但也许整个解决方案有点偏离 - 我需要能够调用该方法以及加载、实例化或......

如何解决此问题以运行整个代码段(并修复损坏的 avro)?