【问题标题】:how to map hbase to hive?如何将hbase映射到hive?
【发布时间】: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 语句工作正常但没有结果?
  • 表示我的知识还不够。我只能做基本的映射,使用分隔符的映射找不到任何例子
  • 顺便说一句,我发布的代码有效.. 但是它只是直接映射,这不是我想要的。我想映射分隔符的内容

标签: hive hbase


【解决方案1】:

userId 是列族“k”中的一列吗?如果是,则不要在映射中给出“:key”。尝试给出“k:userId”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多