请教大家一个问题:hive映射hbase的表的问题,怎样才能让hive认识hbase的字节值?
先说说我情况:
--1,hbase有一张表:
create 'hitable','g';
-- 2,shell插入数据
put 'hitable','scutshuxue','g:dev_type','24' --- 这里的24应该是保存为字符串了。
-- 3, hive建立外部表连接到hbase的 hitable表
CREATE EXTERNAL TABLE hitable(key string, dev_type int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,g:dev_type")
TBLPROPERTIES("hbase.table.name" = "hitable");
--- 4, select * from hitable;
结果:
scutshuxue 24
Time taken: 0.226 seconds, Fetched: 1 row(s);
貌似正常。
---我的问题,实际情况是,写java代码,入库 dev_type 保存为字节(这也是hbase的权威指南推荐的)
若我写java程序的时候入库代码如下:
short dev_type=24
put.add(Bytes.toBytes("g"),Bytes.toBytes("dev_type"),Bytes.toBytes(dev_type));
--- 然后在hive里面select * from hitable;
获取的结果为
scutshuxue NULL
究竟映射外部表的时候要做什么转换,才能让hive认识hbase的hbase的字节值为对应的数字?
|
|