当前位置:  开发笔记 > 编程语言 > 正文

从Avro GenericRecord获取输入值

如何解决《从AvroGenericRecord获取输入值》经验,为你挑选了1个好方法。

给定GenericRecord,与Object相反,检索类型值的推荐方法是什么?我们是否期望投射这些值,如果是这样,从Avro类型到Java类型的映射是什么?例如,Avro Array == Java Collection ; 和Avro String == Java Utf8.

由于每个GenericRecord都包含其架构,我希望有一种类型安全的方法来检索值.



1> jaco0646..:

阿夫罗具有八个基本类型和5种复杂类型(不包括工会作为其它类型的组合).下表13种这些阿夫罗类型映射到它们的输入接口(在Java类型可以是putGenericRecord)和它们的输出实现(其通过返回的具体Java类型get从一个GenericRecord).这些值适用于Avro 1.7.7.

?????????????????????????????????????????????????????????????????? ? Avro Type ? Input Interface ? Output Implementation ? ?????????????????????????????????????????????????????????????????? ? null ? ? null ? ? boolean ? java.lang.Boolean ? java.lang.Boolean ? ? int ? java.lang.Integer ? java.lang.Integer ? ? long ? java.lang.Long ? java.lang.Long ? ? float ? java.lang.Float ? java.lang.Float ? ? double ? java.lang.Double ? java.lang.Double ? ? bytes ? java.nio.ByteBuffer ? java.nio.HeapByteBuffer ? ? string ? java.lang.CharSequence ? org.apache.avro.util.Utf8 ? ? record ? *.GenericRecord ? *.GenericData$Record ? ? enum ? java.lang.CharSequence ? *.GenericData$EnumSymbol ? ? array ? java.util.Collection ? *.GenericData$Array ? ? map ? java.util.Map ? java.util.HashMap ? ? fixed ? *.GenericFixed ? *.GenericData$Fixed ? ?????????????????????????????????????????????????????????????????? * == org.apache.avro.generic


在Avro 1.8.0中,enum类型需要 a GenericEnumSymbol.它不再接受CharSequence.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有