直接从外部hbase表进行Hive查询不会从从外部表创建的Hive表中获得相同的行数

时间:2018-10-17 15:55:04

标签: hive hbase

我创建了一个链接到hbase表的配置单元外部表,例如:

create external table user_test_external
(
 id   string,
 name string,
 age  string,
 createtime string
) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key,info:name,info:age,info:createtime") TBLPROPERTIES("hbase.table.name" = "test_hbase");

然后我从外部表user_test_external查询在'2018-10-17'创建的所有用户,例如:

select count(*) from user_test_external where createtime = '2018-10-17'

假设,我得到了row count = A

现在,我从外部表user_test_external创建一个配置单元表,

CREATE TABLE user_test AS 
SELECT * 
FROM user_test_external 
WHERE createtime = '2018-10-17'

然后,我使用

对表user_test进行计数
SELECT COUNT(*)  AS row_cnt
FROM  user_test 
WHERE createtime = '2018-10-17'

我得到了row_cnt = B,而A!= B,当我使用desc formatted table user_test时,它将显示行数= A。非常感谢任何人都可以提供帮助。

1 个答案:

答案 0 :(得分:0)

我找到了原因!因为列中有多行,而hive的默认行分隔符是\ n,所以当您从hive外部表创建hive表时,数据行会更大