问题标签 [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.
scala - 我可以从 Avro 模式定义中获取 Scala 案例类定义吗?
为了便于在 Scala 中使用 Avro,我想根据存储在 .avro 文件中的模式定义一个案例类。我可以尝试:
- 手动编写 .scala 案例类定义。
- 以编程方式将字符串写入 .scala 文件
- 使用 ObjectWeb 的 ASM 之类的字节码库来欺骗案例类定义
- 具体的编译器技巧?
- 在运行时修改现有的案例分类定义?
谢谢,任何建议表示赞赏。-朱利安
java - Avro 和 java:字符串的反序列化映射不“等于”原始映射
我正在使用由字符串和映射组成的简单记录来测试 Avro for java。这是我的架构:
这是一个非常简单的失败测试用例:
这是测试的输出:
如您所见,两张地图看起来相同,但测试失败。JUnit 在幕后调用“equals”方法,这应该返回 true。顺便说一句,如果您想知道什么是乱码,我通常会使用随机生成的数据创建测试用例,这就是它的来源。
难道我做错了什么?我不知道字符串序列化/反序列化有什么问题吗?我在网上搜索没有成功。
想法?
谢谢
乔杜德
avro - Apache Avro 模式示例和文档
我正在尝试定义一个不太简单的 Avro 架构,但收效甚微;当它不会抛出模式语法错误时,它不会产生我试图在模式中定义的所有类型。
是否有 avsc 定义的可能内容的完整规范?我一直在根据我对 Doc 规范的理解进行猜测,但显然这还不够。
最好的,
爱德华多
hadoop - 从 Hadoop 复制到本地机器
我可以 ssh 到我们的盒子,hadoop fs -ls /theFolder
然后浏览文件等。但这也是我所知道的 :) 我的目标是将其中一个文件(它们是 Avro)复制到我的本地主文件夹中。
怎么能做到这一点?我还发现了一个get
命令,但也不知道如何起诉。
types - 在 Avro 中键入别名?
是否可以在 Avro 中创建类型别名/同义词(或近似相同)?
我想标记例如“long”是一个时间-in-ms-since-epoch,而不必依赖于隐式上下文。
在 Haskell 术语中,它类似于:
在 Scala 术语中类似:
在 Avro 中是否有类似的方法,或者我必须附加一些额外的元数据?该线程意味着我可能必须像这样使用记录包装器:
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 的键值。我该如何修改它以适应动态文件命名?
java - 如何在java中定义Avro联合
我已经定义了一个 Avro 模式,该模式由一个记录组成,该记录包含两个(或多个)不同记录的联合,例如:
看起来不是很清楚,但我希望你明白:我有一个由一些数据(“SomeCommonData”和“MoreCommonData”)组成的记录和两种不同类型记录(“FirstOption”和“SecondOption”)的联合. 在序列化/反序列化时,我应该能够创建两个子记录之一并序列化“MyCompositeRecord”。
我没有尝试为模式生成代码,因为我打算只使用通用记录。但是,我不确定是否以及如何序列化此类通用记录。我在网上找不到任何例子。我将使用 java 进行序列化/反序列化。我能够为模式创建一个写入器/读取器,如下所示:
关于如何从这里开始实际建立记录的任何想法?
谢谢
hive - Sqoop、Avro 和 Hive
我目前正在使用 avro 格式的 Sqoop 从 Mysql 导入 HDFS,这很好用。然而,将这些文件加载到 HIVE 中的最佳方法是什么?
由于 avro 文件包含架构,我可以将文件下拉到本地文件系统,使用 avro 工具并使用提取的架构创建表,但这似乎过度?
此外,如果从 mysql 中的表中删除列,我是否仍可以将旧文件加载到使用新 avro 架构创建的新 HIVE 表中(删除的列丢失)?
uuid - 在 Avro 中表示 UUID 的最佳方式?
我很想了解在 Avro 中编码一种非常特定类型的数据的最佳实践:UUID。
json - 如何使用 Avro 模式来验证 JSON?
我想知道使用 Avro 模式来验证进入我的应用程序的 JSON 的可行性。在这篇文章中,Doug Cutting 建议使用jsontofrag
avro-tools jar 附带的工具。他的示例是一个简单的 JSON“文档”,它只是一个数字:
虽然这可行,但我想知道如何使用更有趣的 JSON 文档来做到这一点。
当我在 Avro 网站上使用示例 JSON 文档和模式尝试此操作时,它失败了,如下所示:
Avro 架构:
示例 JSON 文档
但是当我尝试这样做时:
它得到这个错误(堆栈跟踪省略):
关于如何使这项工作的任何想法?或者另一种使用 Avro 模式来验证 JSON 的方法?