当前位置: 首页 > 知识库问答 >
问题:

如何在java中编写映射到avro?

慕项明
2023-03-14

如何编写java。util。映射到avro?在GenericData中,我看到了记录等的条目,但没有看到映射的条目。同样的问题也存在http://apache-avro.679487.n3.nabble.com/How-to-write-an-AVRO-map-Something-like-GenericData-Map-td3407527.html,但我不知道到底是怎么做到的。

共有2个答案

刘畅
2023-03-14

地图可以像下面这样在avro中定义。请注意,以下方法将不起作用

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

必须这样定义

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

例如

{
    "type": "record",
    "name": "MyData",
    "fields": [
        { "name": "id", "type": { "type": "map", "values" : "long" } }
    ]
}
穆宏胜
2023-03-14

Avro使用java。util。直接使用HashMap。您不需要将其转换为其他类型。具体来说,没有表示映射的类,因此您只需将您的HashMap直接放入一个genericord中。

本答案的表格中列出了所有Avro到Java的转换。请注意,记录枚举数组和固定类型需要类,但映射不需要类。

 类似资料:
  • 这是我得到的,我想按条目中的值降序排序。 如何用排序编写比较器。如果想在排序后执行以下操作 在得到列表并排序后,它对我有效。 但是有没有办法在条目内使用stream.sorted(“在这里使用相同的比较器逻辑”)。 Entry是一个数组列表,有一堆值。 所以我想对此进行反向排序,如下所示: 所以我得到的最终列表是按相反顺序排序的。 为混乱而哭泣。

  • 我在这里尝试遵循本指南: https://github . com/Spring-projects/Spring-Boot/wiki/Spring-Boot-Configuration-Binding 但是我正在努力让它工作。 我想从 application.yml 中定义的映射初始化哈希映射。 这是我最后一次尝试yml-map定义: 这是我的java类: 我想将“组合”和注入为键,并将值注入为字

  • 我有以下代码: 如果我想迭代Map,上面的代码工作得很好。但是现在我有这样的东西。 我想在映射中遍历映射,并获取它的键和值。我想得到key1、value1、key2、value2、key3、value3的值,依此类推。那我该怎么做呢?

  • 我在mapstruct映射器上遇到了问题。当运行mvn clean install(或mvn clean compile)时,我会得到以下错误: 问题是我不知道mapstruct从哪里获得这个“java.lang.Integer Architecture.Loads”。我不明白这个整数是从哪里来的,正如您在我的代码中看到的,没有整数。而且,到目前为止,我在使用类似的映射器时从未遇到过这个错误。 下

  • 我有我创建的地图的地图 我尝试在第二个映射中迭代键的值。 所以它可以是这样的: key1->keya->value1 -------->键->值2 -------->键->值4 -------->KeyC->value1 我想继续多久就继续多久。 因此,我有,并尝试使用名为的值变量和增量计数器if来循环中的所有值 我不知道如何获得。我试着这样做 但这给了我信笺。 如果我执行,它会给出我想要的正确值

  • 当前正在读取Head First Servlet JSP。我目前陷入了映射servlet。这可能是一个愚蠢的问题,但如何才能正确地映射servlet url模式呢?我正在使用eclipse mars,这是我第一次使用JSP/servlet。在创建动态web项目时,我总是检查generate web xml 这是默认web.xml中的内容 它使用这个来运行 但当我将其添加到显示名称下方时 它给我一个