我创建了一个链接到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。非常感谢任何人都可以提供帮助。
答案 0 :(得分:0)
我找到了原因!因为列中有多行,而hive的默认行分隔符是\ n,所以当您从hive外部表创建hive表时,数据行会更大