我是hbase的新手,我有一个平面文件(不是分隔文件),我想加载到一个hbase表中。
以下是我文件中一行的预览:
0107E07201512310015071C11100747012015123100
我知道例如,从第1位到第7位,它是一名身份证,从第7位到第15位,这是一个约会......
问题是如何构建与我的文件相对应的模式,或者是否有办法将其转换为分隔文件或使用jaql读取此类文件,因为我正在使用Infosphere BigInsights。
非常感谢任何帮助。
提前致谢。
答案 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