2013-06-07 13 views
0

Рассмотрите сложный объект java (JAXB) с несколькими примитивами и наборами в качестве переменных-членов. Фаза Reducer излучает такие объекты в HDFS как пара < K, V>, где K - это идентификатор и V, сериализованная форма объекта (SequenceFileOutputFormat).
Можно ли загружать эти Java-сериализованные объекты из HDFS/локального местоположения в Hive/Impala?Загрузка объектов JAXB в Apache Hive/Impala

У MongoDB есть возможность хранить объекты JAXB как документ json из коробки. Любая помощь в достижении того же самого в Hive или Impala очень ценится.

ответ

1

Да, используйте файлы последовательности.

Эта ссылка поможет: http://blog.cloudera.com/blog/2012/12/how-to-use-a-serde-in-apache-hive/

Интерфейс SerDe позволяет инструктировать улей о том, как запись должна быть обработана. SerDe представляет собой комбинацию сериализатора и десериализатора (следовательно, Ser-De). Интерфейс Deserializer принимает строковое или двоичное представление записи и преобразует его в объект Java, который может манипулировать Hive. Сериализатор, однако, возьмет объект Java, с которым Hive работает, и превратит его в то, что Hive может записывать в HDFS или в другую поддерживаемую систему. Как правило, десериализаторы используются во время запроса для выполнения операторов SELECT, а сериализаторы используются при записи данных, например, с помощью инструкции INSERT-SELECT.

С благодарностью