我目前正在研究存储在HBase上的Hive外部表。在这个任务中,我的问题是解释存储在HBase中的数据。
所以,我有这个名为'ana'的表,它有一个列系列'd'和几个限定符。这是我的基础摘录:
1GME010NE- 2015-10-15 15:43:56.822,column = d:12,value = 20151015
1GME010NE- 2015-10-15 15:43:56.822,column = d:13,value = 15:43:56.822
1GME010NE- 2015-10-15 15:43:56.822,栏= d:14 ,值= @ \ x80 \ x00 \ x00
1GME010NE- 2015-10-15 15:43:56.822,column = d:15,value = 0
1GME010NE- 2015-10-15 15:43:56.822, column = d:8 ,value = \ x00 \ x00 \ x01Pl,\ x09 \ x96 < / p>
1GME010NE- 2015-10-15 15:43:56.822,column = d:e,value = 1GME010NE -
我的问题来自:
我想要的是通过Hive访问该数据,BIGINT直接解释为TIMESTAMP。所以我尝试了这个:
CREATE EXTERNAL TABLE hbase_anahist
(
rowkey STRING,
jour STRING,
heure STRING,
valeur FLOAT,
validite STRING,
horodate BIGINT,
repere STRING
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
("hbase.columns.mapping" = ":key#s, d:12#s, d:13#s, d:14#b, d:15#s, d:8#b, d:e#$)
TBLPROPERTIES
(
"hbase.table.name" = "ana",
"hbase.mapred.output.outputtable" = "ana",
"hbase.table.default.storage.type"="binary"
);
这给了我一个BIGINT等于1444923836822,这是2015-10-15 15:43:56.822的BIGINT,所以这没关系。
但在HIVE映射期间,我需要在他的TIMESTAMP等效语言中自动翻译这个BIGINT。
先谢谢你的帮助。
罗曼。