将多个列族从hbase导入配置单元

brjng4g3  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(340)

我正在尝试将具有两列族的hbase表移到配置单元表中。我可以移动一个列族,但如何在同一个配置单元表中移动另一个列族。
编辑:
我把一个一栏的家庭搬到了下面。

CREATE TABLE hbase_hive(key string, firstname string, age string)
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’
WITH SERDEPROPERTIES (“hbase.columns.mapping” = “id:firstname,id:age")
TBLPROPERTIES(“hbase.table.name” = “hl”);

但我还有一个姓的专栏 hb 有三列。如何做到这一点。
更新:
我还尝试添加不同列族的列名,下面是我的代码。

CREATE TABLE hbase_hive(key string, firstname string, age string, testname string)
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’
WITH SERDEPROPERTIES (“hbase.columns.mapping” = “id:firstname,id:age,pd:name")
TBLPROPERTIES(“hbase.table.name” = “hl”);

但我得到的结果如下:

819215975  19391121    625678921720    NULL
 819617215  19570622    625116365890    NULL
 820333876  19640303    623221670810    NULL
 824794938  19531211    625278010070    NULL
 828093442  19420803    625284904860    NULL
 828905771  19320209    625078004220    NULL
 829832017  19630722    625178010070    NULL

我得到的不是值,而是null。
更新:
我尝试在hbase shell中使用以下命令创建hbase表

create ‘hl’,’id’

然后我使用下面的命令创建了一个列族

alter ‘hl’,’pd’
fafcakar

fafcakar1#

在hiveql中,从hbase表“hl”到hive表中选择列族“id”中的两列。如果您想添加更多的列(甚至来自其他列族),您只需要将它们添加到表模式和 hbase.columns.mapping . 例如:

CREATE TABLE hbase_hive(key string, firstname string, age string, a string)
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’
WITH SERDEPROPERTIES (“hbase.columns.mapping” = “id:firstname,id:age,hb:a")
TBLPROPERTIES(“hbase.table.name” = “hl”);

看到了吗https://cwiki.apache.org/confluence/display/hive/hbaseintegration#hbaseintegration-多列和族

pobjuy32

pobjuy322#

我看到你写的东西有几个问题(或多或少严重):
首先,我要创建一个 EXTERNAL TABLE 相反
您正在创建一个只有3列的配置单元表,但最后需要4列
您没有显式Map :key “firstname”和“age”的数据看起来像是随机数!:|
我无法测试它,但以下应该是一个更好的起点:

CREATE EXTERNAL TABLE hbase_hive_hl(key string, firstname string, age string, name string)
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’
WITH SERDEPROPERTIES (“hbase.columns.mapping” = “:key,id:firstname,id:age,pd:name")
TBLPROPERTIES(“hbase.table.name” = “hl”);

相关问题