Как загрузить плоский файл (файл без разделителей) в HBase?

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

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

0107E07201512310015071C11100747012015123100

Например, я знаю, что с позиции 1 по 7 это идентификатор, а с позиции 7 по 15 - дата....

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

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

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


person user3531429    schedule 18.04.2016    source источник


Ответы (2)


Создайте таблицу Hive с помощью 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

person vgunnu    schedule 19.04.2016

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

person kliew    schedule 18.04.2016