问题标签 [avro]

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

scala - 我可以从 Avro 模式定义中获取 Scala 案例类定义吗?

为了便于在 Scala 中使用 Avro,我想根据存储在 .avro 文件中的模式定义一个案例类。我可以尝试:

  1. 手动编写 .scala 案例类定义。
  2. 以编程方式将字符串写入 .scala 文件
  3. 使用 ObjectWeb 的 ASM 之类的字节码库来欺骗案例类定义
  4. 具体的编译器技巧?
  5. 在运行时修改现有的案例分类定义?

谢谢,任何建议表示赞赏。-朱利安

0 投票
2 回答
8839 浏览

java - Avro 和 java:字符串的反序列化映射不“等于”原始映射

我正在使用由字符串和映射组成的简单记录来测试 Avro for java。这是我的架构:

这是一个非常简单的失败测试用例:

这是测试的输出:

如您所见,两张地图看起来相同,但测试失败。JUnit 在幕后调用“equals”方法,这应该返回 true。顺便说一句,如果您想知道什么是乱码,我通常会使用随机生成的数据创建测试用例,这就是它的来源。

难道我做错了什么?我不知道字符串序列化/反序列化有什么问题吗?我在网上搜索没有成功。

想法?

谢谢

乔杜德

0 投票
1 回答
1876 浏览

avro - Apache Avro 模式示例和文档

我正在尝试定义一个不太简单的 Avro 架构,但收效甚微;当它不会抛出模式语法错误时,它不会产生我试图在模式中定义的所有类型。

是否有 avsc 定义的可能内容的完整规范?我一直在根据我对 Doc 规范的理解进行猜测,但显然这还不够。

最好的,

爱德华多

0 投票
2 回答
2976 浏览

hadoop - 从 Hadoop 复制到本地机器

我可以 ssh 到我们的盒子,hadoop fs -ls /theFolder 然后浏览文件等。但这也是我所知道的 :) 我的目标是将其中一个文件(它们是 Avro)复制到我的本地主文件夹中。

怎么能做到这一点?我还发现了一个get命令,但也不知道如何起诉。

0 投票
1 回答
337 浏览

types - 在 Avro 中键入别名?

是否可以在 Avro 中创建类型别名/同义词(或近似相同)?

我想标记例如“long”是一个时间-in-ms-since-epoch,而不必依赖于隐式上下文。

在 Haskell 术语中,它类似于:

在 Scala 术语中类似:

在 Avro 中是否有类似的方法,或者我必须附加一些额外的元数据?该线程意味着我可能必须像这样使用记录包装器:

0 投票
1 回答
2603 浏览

java - 使用 AvroMultipleOutputs 创建多个输出文件

我有一个使用 AvroKeyOutput 作为输出格式的 Reducer。默认情况下,MapReduce 会将我的所有键写入单个输出文件。我想为每个键值写入一个单独的输出文件。Avro 提供了 AvroMultipleOutputs 方法,但示例很少。Apache AvroMultipleOutputs提供的一个展示了如何在定义作业时预先配置各种输出。示例显示:

工作:
AvroMultipleOutputs.addNamedOutput(job, "avro1", AvroOutputFormat.class, schema);
AvroMultipleOutputs.addNamedOutput(job, "avro2", AvroOutputFormat.class, null);

减速机:
amos = new AvroMultipleOutputs(conf);
amos.getCollector("avro1", reporter).collect(datum);
amos.getCollector("avro2", "A", reporter).collect(datum);
amos.getCollector("avro3", "B", reporter).collect(datum);

但我不知道我需要多少个文件或者它们的名称是什么,因为它是基于我的 reducer 的键值。我该如何修改它以适应动态文件命名?

0 投票
1 回答
6587 浏览

java - 如何在java中定义Avro联合

我已经定义了一个 Avro 模式,该模式由一个记录组成,该记录包含两个(或多个)不同记录的联合,例如:

看起来不是很清楚,但我希望你明白:我有一个由一些数据(“SomeCommonData”和“MoreCommonData”)组成的记录和两种不同类型记录(“FirstOption”和“SecondOption”)的联合. 在序列化/反序列化时,我应该能够创建两个子记录之一并序列化“MyCompositeRecord”。

我没有尝试为模式生成代码,因为我打算只使用通用记录。但是,我不确定是否以及如何序列化此类通用记录。我在网上找不到任何例子。我将使用 java 进行序列化/反序列化。我能够为模式创建一个写入器/读取器,如下所示:

关于如何从这里开始实际建立记录的任何想法?

谢谢

0 投票
1 回答
3823 浏览

hive - Sqoop、Avro 和 Hive

我目前正在使用 avro 格式的 Sqoop 从 Mysql 导入 HDFS,这很好用。然而,将这些文件加载​​到 HIVE 中的最佳方法是什么?

由于 avro 文件包含架构,我可以将文件下拉到本地文件系统,使用 avro 工具并使用提取的架构创建表,但这似乎过度?

此外,如果从 mysql 中的表中删除列,我是否仍可以将旧文件加载到使用新 avro 架构创建的新 HIVE 表中(删除的列丢失)?

0 投票
3 回答
7967 浏览

uuid - 在 Avro 中表示 UUID 的最佳方式?

我很想了解在 Avro 中编码一种非常特定类型的数据的最佳实践:UUID。

0 投票
2 回答
8167 浏览

json - 如何使用 Avro 模式来验证 JSON?

我想知道使用 Avro 模式来验证进入我的应用程序的 JSON 的可行性。在这篇文章中,Doug Cutting 建议使用jsontofragavro-tools jar 附带的工具。他的示例是一个简单的 JSON“文档”,它只是一个数字:

虽然这可行,但我想知道如何使用更有趣的 JSON 文档来做到这一点。

当我在 Avro 网站上使用示例 JSON 文档和模式尝试此操作时,它失败了,如下所示:

Avro 架构:

示例 JSON 文档

但是当我尝试这样做时:

它得到这个错误(堆栈跟踪省略):

关于如何使这项工作的任何想法?或者另一种使用 Avro 模式来验证 JSON 的方法?