0

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

这是我文件中一行的预览:

0107E07201512310015071C11100747012015123100

我知道例如,从位置 1 到 7 是一个 id,从位置 7 到 15 它是一个日期....

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

任何帮助将不胜感激。

提前致谢。

4

2 回答 2

0

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

于 2016-04-18T22:54:03.350 回答
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 的配置单元表这里是说明 http://hortonworks.com/blog/hbase-via-hive-part-1/

您可以使用插入覆盖表将数据从配置单元表加载到 HBase 表 https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-SELECTSandFILTERS

于 2016-04-19T03:38:22.520 回答