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搜索了很多时间但仍然没有找到问题。谁能告诉我如何解决它?非常感谢
答案 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类产生的形式。