来自HBase的HiveQL查询

时间:2013-09-19 17:10:14

标签: hbase hive

我在Hive中创建一个外部表,指向HBase中的一个表,从列族'animal'中选择所有内容,然后在hive中执行SELECT * FROM this_table,它显示如下:

1   {"cat":"10"}
2   {"tiger":"20"}
3   {"dog":"15"}
4   {"bear":"10"}

“cat”是“animal”下的标识符名称,“10”是值。

现在我想查询'cat'的值,我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您的hive和hbase表的架构是什么样的。您需要使用hbase ColumnFamily映射配置单元列:ColumnQualifier。

创建外部表时,您可以指定列映射 -

CREATE EXTERNAL TABLE hive_table (cat String)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "animal:cat")
TBLPROPERTIES ("hbase.table.name" = "hbase_table");