栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive TypeInfo 和 TypeInfoFactory 源代码分析

Hive TypeInfo 和 TypeInfoFactory 源代码分析

TypeInfo 是所有类型的子类,有四个子类,分别为 ListTypeInfo, MapTypeInfo,MapTypeInfo,StructTypeInfo, PrimitiveTypeInfo。

TypeInfoFactory

TypeInfo 使用 TypeInfoFactory 创建。TypeInfoFactory 包含若干静态的TypeInfo 创建方法,用于创建 Primitive,Struct,List 和 Map 的 TypeInfo。

getPrimitiveTypeInfo

方法用创建的类型的 class 作为参数,如:

TypeInfo stringTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(String.class);
TypeInfo intTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(Integer.class);
TypeInfo booleanTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(Boolean.class);
TypeInfo dateTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(Date.class);
getStructTypeInfo

有两个参数,第 1 个是名字组成的 list,第 2 个参数是类型组成的 list,两个 list 的长度必须一致。

TypeInfo nameTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(String.class);
TypeInfo ageTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(Integer.class);
TypeInfo person getStructTypeInfo(Arrays.asList("name", "age"),Arrays.asList(nameTypeInfo, ageTypeInfo));
getListTypeInfo

和 getPrimitiveTypeInfo 一样,只有一个参数,用于指定元素的类型。例如一个有几个名字,可以用下面的创建对应的 TypeInfo。

TypeInfo namesTypeInfo = TypeInfoFactory.getListTypeInfo(String.class);
getMapTypeInfo

getMapTypeInfo 有两个参数,分别为 key 的 TypeInfo 和 Value 的TypeInfo。

TypeInfo nameTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(String.class);
TypeInfo ageTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(Integer.class);
TypeInfo person getMapTypeInfo(nameTypeInfo, ageTypeInfo);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673410.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号