Hbase集成的Hive为

时间:2017-09-07 08:44:10

标签: hadoop hive hbase

everyone.I尝试使用hbase集成但遇到问题.hive的时间戳字段查询为空。 我的sql是:

  

CREATE EXTERNAL TABLE hbase_data(nid string,dillegaldate timestamp,   coffense string)STORED BY   ' org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH   SERDEPROPERTIES(   " hbase.columns.mapping" =":键,0:DILLEGALTIMESTAMP,0:COFFENSE&#34)   TBLPROPERTIES(" hbase.table.name" =" ILLEGAL_DATA");

执行成功,但通过配置单元查询

  

从hbase_data limit 10中选择*;

列dillegaldate为空,我用Google搜索了很多时间但仍然没有找到问题。谁能告诉我如何解决它?非常感谢

1 个答案:

答案 0 :(得分:1)

0:DILLEGALTIMESTAMP替换为0:DILLEGALTIMESTAMP#b

CREATE EXTERNAL TABLE hbase_data(nid string, dillegaldate timestamp, coffense string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES( "hbase.columns.mapping"=":key,0:DILLEGALTIMESTAMP#b,0:COFFENSE") TBLPROPERTIES("hbase.table.name" = "ILLEGAL_DATA");

映射条目必须是:key,:timestamp或格式为column-family-name:[column-name] [#(binary | string)(在Hive 0.9中添加了以#分隔的类型规范)。 0,早期版本将所有内容解释为字符串) 如果未给出类型说明,则将使用hbase.table.default.storage.type中的值 有效值的任何前缀也是有效的(即#b代替#binary) 如果将一列指定为二进制,则相应的HBase单元中的字节应采用HBase的Bytes类产生的形式。

HBaseIntegration