我目前正在处理一个存储在hbase上的配置单元外部表。在这个任务中,我的问题是如何解释hbase中存储的数据。
所以,我有一个表,叫做'ana',它有一个列族'd'和几个限定符。以下是我的基础摘录:
1gme010ne-2015-10-15 15:43:56.822,列=d:12,值=20151015
1gme010ne-2015-10-15 15:43:56.822,列=d:13,值=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,列=d:15,值=0
1gme010ne-2015-10-15 15:43:56.822,列=d:8,值=\x00\x00\x01pl,\x09\x96
1gme010ne-2015-10-15 15:43:56.822,列=d:e,值=1gme010ne-
我的问题来自:
列d:8包含一个bigint,它实际上是一个时间戳,等于'2015-10-15 15:43:56.822',编码为'\x00\x00\x01pl,\x09\x96'。
我想要的是通过配置单元访问这些数据,并将bigint直接解释为时间戳。所以我试了这个:
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,所以这是可以的。
但是我需要这个bigint在hiveMap过程中自动转换成他的时间戳等价物。
提前谢谢你的帮助。
罗曼。
暂无答案!
目前还没有任何答案,快来回答吧!