考虑一个具有多个原语和集合作为成员变量的复杂 java (JAXB) 对象。Reducer 阶段将这些对象作为 < K, V > 对发送到 HDFS,其中 K 是一个 id,V 是对象的序列化形式 (SequenceFileOutputFormat)。
是否可以将这些 java 序列化对象从 HDFS/本地位置加载到 Hive/Impala?
MongoDB 能够将 JAXB 对象存储为开箱即用的 json 文档。非常感谢在 Hive 或 Impala 上实现相同目标的任何帮助。
考虑一个具有多个原语和集合作为成员变量的复杂 java (JAXB) 对象。Reducer 阶段将这些对象作为 < K, V > 对发送到 HDFS,其中 K 是一个 id,V 是对象的序列化形式 (SequenceFileOutputFormat)。
是否可以将这些 java 序列化对象从 HDFS/本地位置加载到 Hive/Impala?
MongoDB 能够将 JAXB 对象存储为开箱即用的 json 文档。非常感谢在 Hive 或 Impala 上实现相同目标的任何帮助。
是的,使用序列文件。
这个链接应该有帮助: http: //blog.cloudera.com/blog/2012/12/how-to-use-a-serde-in-apache-hive/
SerDe 接口允许您指示 Hive 应如何处理记录。SerDe 是 Serializer 和 Deserializer(因此称为 Ser-De)的组合。Deserializer 接口采用记录的字符串或二进制表示,并将其转换为 Hive 可以操作的 Java 对象。然而,Serializer 将采用 Hive 一直在使用的 Java 对象,并将其转换为 Hive 可以写入 HDFS 或其他支持的系统的东西。通常,在查询时使用反序列化器来执行 SELECT 语句,而在写入数据时使用序列化器,例如通过 INSERT-SELECT 语句。
谢谢