考虑一个复杂的java(jaxb)对象,其中包含多个原语和集合作为成员变量。reducer阶段将这些对象作为<k,v>对发送到hdfs中,其中k是id,v是对象的序列化形式(sequencefileoutputformat)。是否可以将这些java序列化对象从hdfs/本地位置加载到hive/impala?mongodb能够将jaxb对象存储为现成的json文档。任何帮助实现相同的Hive或 Impala 是非常感谢。
jw5wzhpr1#
是的,使用序列文件。此链接应有助于:http://blog.cloudera.com/blog/2012/12/how-to-use-a-serde-in-apache-hive/serde接口允许您指示hive如何处理记录。serde是序列化程序和反序列化程序的组合(因此,serde)。反序列化器接口接受记录的字符串或二进制表示形式,并将其转换为hive可以操纵的java对象。然而,序列化程序将获取hive一直使用的java对象,并将其转换为hive可以写入hdfs或其他受支持系统的内容。通常,反序列化程序在查询时用于执行select语句,序列化程序在写入数据时(例如通过insert select语句)使用。谢谢
1条答案
按热度按时间jw5wzhpr1#
是的,使用序列文件。
此链接应有助于:http://blog.cloudera.com/blog/2012/12/how-to-use-a-serde-in-apache-hive/
serde接口允许您指示hive如何处理记录。serde是序列化程序和反序列化程序的组合(因此,serde)。反序列化器接口接受记录的字符串或二进制表示形式,并将其转换为hive可以操纵的java对象。然而,序列化程序将获取hive一直使用的java对象,并将其转换为hive可以写入hdfs或其他受支持系统的内容。通常,反序列化程序在查询时用于执行select语句,序列化程序在写入数据时(例如通过insert select语句)使用。
谢谢