2016-04-18 6 views
0

Я новичок в hbase, и у меня есть плоский файл (не ограниченный файл), который я бы хотел загрузить в одну таблицу hbase.Как загрузить плоский файл (не ограниченный файл) в HBase?

Вот предварительный просмотр строки в моем файле:

0107E07201512310015071C11100747012015123100

Я знаю, Ф.О., например, что от позиции 1 до 7 Это идентификатор и от позиции 7 до 15 лет это дата ....

Проблема заключается в том, как построить схему, соответствующую моему файлу, или если есть способ ее преобразования в файл с разделителями или прочитать такой файл с помощью jaql, потому что я работаю с Infosphere BigInsights.

Любая помощь была бы принята с благодарностью.

Заранее спасибо.

ответ

0

Создать таблицу улей с помощью RegExSerDe

CREATE EXTERNAL TABLE testtable ((col1 STRING, col2 STRING, col3 STRING) 
ROW FORMAT SERDE ‘org.apache.hadoop.hive.contrib.serde2.RegexSerDe’ 
WITH SERDEPROPERTIES (“input.regex” = “(.{5})(.{6})(.{3}).*”) 
LOCATION ‘<hdfs-file-location>’; 

Вы можете создать улую таблицу, указывая на HBase Вот инструкции http://hortonworks.com/blog/hbase-via-hive-part-1/

Вы можете использовать вставку перезаписи таблицы для загрузки данных из улья таблицы к таблице HBase https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-SELECTSandFILTERS

+0

Спасибо за ваш ответ. Он решил мою проблему – user3531429

0

Вы можете написать SerDe для десериализации в Улей и использования Hive для экспорта в HBase.