Запросы кустов из внешней таблицы hbase напрямую не получают тот же счетчик строк из таблицы кустов, созданной из внешней таблицы - PullRequest
0 голосов
/ 17 октября 2018

Я создал внешнюю таблицу улья, связанную с таблицей 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. Я был действительно смущен этим проводным результатом.Очень ценю, если кто-нибудь может помочь.

1 Ответ

0 голосов
/ 18 октября 2018

Я нашел причину! Поскольку есть столбцы с несколькими строками , в то время как разделитель строк улья по умолчанию равен \ n, поэтому при создании таблицы улья из внешней таблицы улья строки данных больше

...