序列化—将jaxb对象加载到apache hive/impala

ikfrs5lh  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(325)

考虑一个复杂的java(jaxb)对象,其中包含多个原语和集合作为成员变量。reducer阶段将这些对象作为<k,v>对发送到hdfs中,其中k是id,v是对象的序列化形式(sequencefileoutputformat)。
是否可以将这些java序列化对象从hdfs/本地位置加载到hive/impala?
mongodb能够将jaxb对象存储为现成的json文档。任何帮助实现相同的Hive或 Impala 是非常感谢。

jw5wzhpr

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语句)使用。
谢谢

相关问题