【发布时间】:2016-02-04 22:59:23
【问题描述】:
我有一个上述格式的hbase表:
key : userId#country
column family: k
columns: date#visits, visits
我如何制作一个如下所示的蜂巢表:
userId, date, country, visits
我试图摆弄列映射,但到目前为止我只能做到这一点:
CREATE EXTERNAL TABLE hbase_table(key string, visits int)
ROW FORMAT DELIMITED
COLLECTION ITEMS TERMINATED BY '#'
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,k:visits")
TBLPROPERTIES ("hbase.table.name" = "kpi");
我已经为此工作了好几个小时,但没有太大进展。有人能指出我正确的方向吗?
我发现了如何将 hbase 键映射到 hive 行,这不是我想要的,但它有帮助...:
CREATE EXTERNAL TABLE hbase_table(key struct<id:string, country:string>, visits int)
ROW FORMAT DELIMITED
COLLECTION ITEMS TERMINATED BY '#'
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,k:visits")
TBLPROPERTIES ("hbase.table.name" = "kpi");
【问题讨论】:
-
你能分享更多关于你遇到的错误是什么吗?
-
我没有收到任何错误,我做不到。我放的代码是映射整个键和其中一列。我一直在互联网上寻找一个工作示例,如何将列名映射到配置单元列,并将行键的一部分映射到另一列。
-
但是当你说你做不到的时候,它在哪里失败了。输入 CREATE 语句时会失败吗?还是 create 语句工作正常但没有结果?
-
表示我的知识还不够。我只能做基本的映射,使用分隔符的映射找不到任何例子
-
顺便说一句,我发布的代码有效.. 但是它只是直接映射,这不是我想要的。我想映射分隔符的内容