Hadoop serde2.objectinspector和typeinfo包之间的差异

Hadoop serde2.objectinspector和typeinfo包之间的差异,hadoop,hive,Hadoop,Hive,这两个包之间有什么区别: org.apache.hadoop.hive.serde2.objectinspector org.apache.hadoop.hive.serde2.typeinfo 一个是新的API吗?它们是否都是最新的,但在某种程度上有所不同?他们看起来很像我:/ 由于这两个包都在说明符serde2下,我认为它们目前都在使用中 TypeInfo存储一个类型的信息,每个类型都有一个对象来表示它。因此,TypeInfo只是一个只读信息,用于处理对象的类型(类别、类型名称等) 配置

这两个包之间有什么区别:

  • org.apache.hadoop.hive.serde2.objectinspector
  • org.apache.hadoop.hive.serde2.typeinfo
一个是新的API吗?它们是否都是最新的,但在某种程度上有所不同?他们看起来很像我:/

  • 由于这两个包都在说明符serde2下,我认为它们目前都在使用中
  • TypeInfo存储一个类型的信息,每个类型都有一个对象来表示它。因此,TypeInfo只是一个只读信息,用于处理对象的类型(类别、类型名称等)
  • 配置单元具有给定类型的多个内存中数据格式(例如Integer:Integer、IntWritable和LazyInteger)。数据以对象和对象检查器中存储的格式/操作存储。因此,数据对象和objectinspector表示一个数据单元,感觉您可以使用objectinspector提供的信息对对象进行反序列化

  • ObjectInspector用于序列化对象,比如假设您正在创建JSON serde并使用JSON库将java对象转换为JSON,反之亦然,那么您接收的配置单元对象是行的内部表示,这需要转换为java对象,java对象将进一步转换为JSON。对于配置单元到JAVA的转换,我们需要ObjectInspector,例如ListObjectInspector


    类似地,在反序列化时,将JSON转换为配置单元行对象,为此我们使用TypeInfo类,例如ListTypeInfo

    是的,我现在也是这样理解的。TypeInfo表示“配置单元类型”,而ObjectInspector是各种表示的“(反)序列化器”。谢谢