问题标签 [avsc]

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 回答
2663 浏览

namespaces - How to use avro data with old and new namespace

I am facing a problem where I have updated the namespace in my avsc schema file. Since we were using common processor created in Java to parse the XML to avro and were using the avsc file.

We have separated the interfaces and created 2 different namespaces and now having 2 avsc schemas which are identical just the namespace is different.

Since we have data which was generated using old namespace, I am unable to query this data with new data generated with new namespace.

Here is example of my schemas -

Old schema - "type" : "record", "name" : "Message", "namespace" : "com.myfirstavsc", "fields" : [ { "name" : "Header",.....**other fields**

New schema - "type" : "record", "name" : "Message", "namespace" : "com.mysecondavsc", "fields" : [ { "name" : "Header",.....**other fields**

When I query my hive table I get below exception

0 投票
1 回答
245 浏览

hadoop - 创建没有类(-对象)的 Avro 模式

目前我正在将一个类序列化为 avsc 模式。这很好用:

但是,我需要动态创建一个没有任何给定类的 AVSC 。这可能吗?

0 投票
1 回答
660 浏览

hadoop - 从 AVSC 创建 Hive 表,其中包含对先前定义的模式的引用作为类型

我正在寻找一种通过 Hive 获取以下 AVSC 文件内容并将嵌套模式“RENTALRECORDTYPE”外部化的方法,以实现模式重用。

这种定义模式的方法效果很好。我能够发出以下 HiveQL 语句并成功创建表。


但是,我希望能够引用现有架构,而不是在多个架构中复制记录定义。例如,将生成两个 AVSC 文件,而不是单个模式文件。即rentalrecord.avsc 和employee.avsc。

出租记录.avsc

员工.avsc

在上述场景中,我们希望能够将RENTALRECORD模式定义外部化,并能够在employee.avsc和其他地方重用它。

尝试使用以下两个 HiveQL 语句导入架构时,它失败了……</p>

Rentalrecord.avsc 导入成功,但employee.avsc 在第一个字段定义上失败。“RENTALRECORD”类型的字段。Hive 输出以下错误...</p>

失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。java.lang.RuntimeException: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException 遇到异常确定模式。返回信号模式以指示问题:“RENTALRECORD”不是定义的名称。“rentalrecord”字段的类型必须是定义的名称或 {"type": ...} 表达式。)

我的研究告诉我,Avro 文件确实支持这种形式的模式重用。所以要么我错过了一些东西,要么这是 Hive 不支持的东西。

任何帮助将不胜感激。

0 投票
0 回答
333 浏览

datetime - 使用 Maven 从 .avsc 文件转换为 Java 文件

我创建了一个.avsc文件并声明了以下字段:{ "name": "event_time", "type": { "type" : "long", "logicalType": "timestamp-millis"}, "doc": "The timestamp when the event was registered." }

package执行from 指令时,maven将创建以下字段:private DateTime event_time;

然后,使用以下代码实现从DateTimeto的转换:Long

这行代码在执行时会抛出异常,因为Long无法通过DateTime这种方式将对象转换为对象。

我想知道是否可以.avsc使用命令重写从文件生成的类package。这个类在target文件夹中。

否则,我想知道使用 AVRO 发送时间戳还有哪些其他可能的选项。

0 投票
1 回答
1439 浏览

python - 如何读取和操作 Avro 架构(avsc 格式)

我想使用 Avro 模式并在 python 中读取它。无法读取架构。它抛出一个错误

0 投票
1 回答
289 浏览

python-2.7 - Python - 如何将保存表模式的 .txt/.csv 文件转换为 .avsc 文件

需要将表模式(使用 describe\list 列)提取到 .txt 或 .csv 文件中,然后使用 python 将这些文件转换为 .avsc(avro 模式)文件。

示例.txt:

COLUMN_NAME |TYPE_NAME|DEC&|NUM&|COLUM&|COLUMN_DEF|CHAR_OCTE&|IS_NULL&

AIRLINE |CHAR |NULL|NULL|2 |NULL |4 |NO AIRLINE_FULL |VARCHAR |NULL|NULL|24 |NULL |48 |YES

需要将sample.txt转换成sample.avsc

0 投票
0 回答
242 浏览

scala - 无法在 Spark Scala 中将 RDD [Java 类] 转换为 Dataframe

我有avro消息和.avsc文件。我已经从.avsc文件生成了 java 类。现在我想将 avro(json) 消息转换为数据帧。我读了消息。成功解码了消息,我得到了 RDD[Product] 但我无法将 RDD[Product] 转换为数据帧。我需要将消息保存为 .avro 格式。

错误:java.lang.UnsupportedOperationException:在 bean 类中不能有循环引用,但是得到了类 org.apache.avro.Schema 的循环引用

0 投票
1 回答
1061 浏览

apache - 在使用 avro maven 插件生成代码时处理 avro 中的通用模式

我正在使用 avro maven 插件为 avro .avsc 模式文件生成 java 代码,我有一个通用模式,它在多个地方作为单独的记录使用,当我在每个地方提供不同的命名空间时,它能够生成 java 代码,但是生成的代码位于不同的文件夹中,尽管两个类的代码相同

有没有办法像上面的方案那样只生成单个类以供共同参考...这是我的 avsc

如果我在两个位置都为 InnerCommon 模式提供不同的命名空间,它能够生成代码,但在 2 个文件夹中具有相同代码的类:(

这是使用命名空间的 avsc

这是生成的文件夹结构

生成的文件夹结构

有什么办法可以将所有常见的生成的东西放在单个文件夹中并具有相同的命名空间来删除​​重复项?

编辑1:我需要将它注册到模式注册表并检查进化,我想知道是否有任何方法可以告诉插件不要覆盖生成的代码并且只放置一个类

0 投票
1 回答
2714 浏览

avro - 如何在另一个架构中引用一个 avro 架构

我需要从另一个模式中引用这个学生模式:

这是需要引用Student的父地址模式:

当我使用带有 Avro 插件的 Gradle 构建时,上面会引发错误。两种模式都位于同一个文件夹中。

0 投票
1 回答
501 浏览

apache-spark - Spark:如何使用 Avro 模式创建数据集?

我有一组 avro 文件保存在 aws S3 中,已知模式在 .avsc 文件中定义。有没有办法用定义的模式在 spark 中创建对象数据集?

架构如下所示:

我想创建一个 NameRecord 的数据集:Dataset[NameRecord]