У меня есть таблица в Улье, которая имеет 20 столбцов, и я хочу считать уникальные записи и все записи в час.Количество и количество улей нечеткие
Таблица выглядит следующим образом:
CREATE EXTERNAL TABLE test1(
log_date string,
advertiser_creatives_id string,
cookieID string,
)
STORED AS ORC
LOCATION "/day1orc"
tblproperties ("orc.compress"="ZLIB");
И мой запрос, как это:
SELECT Hour(log_date),
Count(DISTINCT cookieid) AS UNIQUE,
Count(1) AS impressions
FROM test1
GROUP BY Hour(log_date);
Но результаты не являются правильными. У меня около 70 миллионов записей, и когда я делаю сумму показов, я получаю только 8 миллионов, так что я подозреваю, что отчет занимает слишком много столбцов.
Итак, как я могу исправить это, чтобы получить правильное количество показов?
** Дополнительная информация **
hive.vectorized.execution.enabled
не определен, так что не является активным.
тот же запрос в текстовом формате возвращает еще меньше строк (около 2,7 млн)
результат COUNT(*)
: 70643229
результат COUNT(cookieID)
: 70643229
Результат COUNT(DISTINCT cookieID)
: 1440195
Приветствия
Улей 0,11 или улей 0,12? Возможно ли обмен файлом данных, который воспроизводит проблему? –
Улей 0.12, и данные не мои, чтобы поделиться, но сумма всего этого не складывается. 70 миллионов записей, но когда я считаю, я получаю только 8 миллионов. – darkownage
Можете ли вы разместить EXPLAIN для запроса? Вы не разрешили векторизации случайно ('set hive.vectorized.execution.enabled = true;'), не так ли? –