将hbase表完整数据读取到配置单元

7eumitmz  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(229)

我正在尝试将hbase表读入配置单元。
我尝试了下面的命令来读取完整的表数据。

CREATE EXTERNAL TABLE hbase_table_2(key int, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'WITH SERDEPROPERTIES ("hbase.columns.mapping" = "cd:value")TBLPROPERTIES("hbase.table.name" = "companydetail", "hbase.mapred.output.outputtable" = "companydetail_hive");

cd是我的表中的一个列族,它的值。
这里的问题是,当我运行这个命令时,它只给出我在hbase列Map中提到的特定值。
但是我想在hive中加载完整的表,它在hbase表中包含超过5000行,并且column family(cd)包含不同的列前缀。我试过你的建议,但还是没有得到我真正需要的。
在我的表中,列族是cd,表名是companydetail。
样品表data:-

ROW                              COLUMN+CELL

\x00\x00\x00\x00\x00\x00\x06\xA6 column=cd:cct, timestamp=1475738991531, value=Atlanta

\x00\x00\x00\x00\x00\x00\x06\xA6 column=cd:cnt, timestamp=1475740226346, value=Network ICE Corp.

\x00\x00\x00\x00\x00\x00\x06\xA6 column=cd:ct, timestamp=1475740596684, value=ISYI srl

我相信这里cct是一个col\ u前缀。
我试过另一种方法如下,

CREATE TABLE hbase_11(value map<string,int>, row_key int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ( "hbase.columns.mapping" = "cd:cct.*,:key" );

当我尝试这个的时候,我什么都没有得到。0条记录。在这里,我们只给出了列族,但没有提到我们想要得到数据的表是什么。
我试过另一种方法。

CREATE EXTERNAL TABLE hbase_table_1(value map<string,int>, row_key int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ( "hbase.columns.mapping" = "cd:cct.*,:key" ) TBLPROPERTIES("hbase.table.name" = "companydetail", "hbase.mapred.output.outputtable" = "companydetail_hive");

我得到的输出是

{"cct":null}   NULL
{"cct":null}   NULL
{"cct":null}   NULL
{"cct":null}   NULL
{}   NULL
{"cct":null}   NULL
{}   NULL
{"cct":null}   NULL
{"cct":null}   NULL
{"cct":null}   NULL
{"cct":null}   NULL

Time taken: 0.45 seconds, Fetched: 1291 row(s)

表由1291行组成,如果如我所说cct是表的col\u前缀,那么它有1291 col\u前缀。
我不能得到整个表的数据,因为我必须为所有的1291前缀。
我该怎么做,
请建议我。
提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题