gpt4 book ai didi

types - avro 中的 map 和记录有什么区别?

转载 作者:行者123 更新时间:2023-12-04 05:49:53 24 4
gpt4 key购买 nike

我正在使用 Apache Avro对于一个项目,但我似乎无法理解它所谓的 map 。我还没有找到任何使用中的 map 示例,而且规范中的示例非常简陋:

Maps

Maps use the type name "map" and support one attribute:

  • values: the schema of the map's values.

Map keys are assumed to be strings.

For example, a map from string to long is declared with:

{"type": "map", "values": "long"}

适合该模式的数据可能像 JSON 一样? map 有什么用处而不是记录更好?

最佳答案

我的理解是,与 java.util.Map 相比,这种差异非常类似于 Java 处理具有命名属性的 POJO 的方式。也就是说,Map 中条目的名称是任意的、动态的;但是数据类型都是相同的类型(但是可以是 java.lang.Object 来指示任何类型)。

也就是说,Maps 在条目方面更通用,但占用更多存储空间并且处理速度比 POJO 慢(因为按名称查找,与字段的直接索引相比)。

Avro 本身是强类型的,因为需要模式,这可能使 map 的使用不如 JSON 等更动态的格式更有吸引力。

关于types - avro 中的 map 和记录有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10199999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com