Я создал внешнюю таблицу улья, связанную с таблицей 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");
Затем я запрашиваю всех пользователей, созданных в '2018-10-17' из внешней таблицы user_test_external, например:
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. Я был действительно смущен этим проводным результатом.Очень ценю, если кто-нибудь может помочь.