我在 Hive 中创建了一个指向 HBase 中的表的外部表,从列族“animal”中选择所有内容,然后在 hive 中执行 SELECT * FROM this_table,它向我显示如下:
1 {"cat":"10"}
2 {"tiger":"20"}
3 {"dog":"15"}
4 {"bear":"10"}
“cat”是“animal”下的标识符名称,“10”是值。
现在我想查询'cat'的值,我该怎么做呢?
您的 hive 和 hbase 表的架构是什么样的。您需要使用 hbase ColumnFamily:ColumnQualifier 映射 hive 列。
在创建外部表时,您可以像这样指定列映射 -
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");