3

这两个包有什么区别:

  • org.apache.hadoop.hive.serde2.objectinspector
  • org.apache.hadoop.hive.serde2.typeinfo

是一种较新的 API 吗?它们都是最新的,但在某种程度上不同吗?他们看起来和我很相似:/

4

2 回答 2

4
  1. 由于这两个包都在说明符 serde2 下,我认为它们都在当前使用中
  2. TypeInfo 存储一种类型的信息,每种类型都有一个对象来表示它。因此,TypeInfo 只是处理对象类型(类别、类型名称等)的只读信息
  3. Hive 对给定类型有多种内存数据格式(例如整数:整数、IntWritable 和 LazyInteger)。数据存储在对象中,格式/操作存储在对象检查器中。所以一个数据对象和objectinspector代表一个数据单元,感觉就像你可以使用objectinspector提供的信息反序列化对象。
于 2012-05-07T14:44:49.663 回答
0

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

同样,当您反序列化时,您将 JSON 转换为 Hive 行对象,为此我们使用 TypeInfo 类,例如 ListTypeInfo。

于 2017-08-15T09:19:56.343 回答