簡體   English   中英

如何在Java中將地圖寫到Avro?

[英]How to write map to avro in java?

如何將avro編寫java.util.map? 在GenericData中,我看到了Record等的條目,但沒有Map的條目。 http://apache-avro.679487.n3.nabble.com/How-to-write-an-AVRO-map-Something-like-GenericData-Map-td3407527.html上存在相同的問題,但我不完全了解怎么做的。

Avro直接使用java.util.HashMap 您無需將其轉換為其他類型。 具體來說,沒有GenericData類代表地圖,因此您只需將HashMap直接放入GenericRecord

答案的表格中列出了所有Avro到Java的轉換。 請注意,對於recordenumarrayfixed類型, GenericData類是必需的,而對於map不是。

可以像下面這樣在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" } }
    ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM