如何将平面文件(不是分隔文件)加载到HBase中?

时间:2016-04-18 20:35:08

标签: hadoop load hbase flat-file biginsights

我是hbase的新手,我有一个平面文件(不是分隔文件),我想加载到一个hbase表中。

以下是我文件中一行的预览:

  

0107E07201512310015071C11100747012015123100

我知道例如,从第1位到第7位,它是一名身份证,从第7位到第15位,这是一个约会......

问题是如何构建与我的文件相对应的模式,或者是否有办法将其转换为分隔文件或使用jaql读取此类文件,因为我正在使用Infosphere BigInsights。

非常感谢任何帮助。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以编写SerDe以反序列化到Hive中,并使用Hive导出到HBase。

答案 1 :(得分:0)

使用RegExSerDe创建Hive表

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的hive表 以下是说明 http://hortonworks.com/blog/hbase-via-hive-part-1/

你可以使用 插入覆盖表以将数据从hive表加载到HBase-table https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-SELECTSandFILTERS