Более эффективный запрос, чтобы избежать OutOfMemoryError в Hive

Я получаю java.lang.OutOfMemoryError: превышен предел накладных расходов GC в Hive. В поиске я обнаружил, что это происходит потому, что 98% всего процессорного времени процесса собирается на сбор мусора (что бы это ни значило?). Суть моей проблемы в моем запросе? Должен ли я писать ниже по-другому, чтобы избежать такой проблемы?

Я пытаюсь подсчитать, сколько телефонов определенного типа имеют активное «Использование» в данный период времени. Есть ли способ сделать эту логику по-другому, что бы работать лучше?

select count(a.imei)
from
(Select distinct imei
from pingdata
where timestamp between TO_DATE("2016-06-01") AND TO_DATE("2016-07-17")
and ((SUBSTR(imei,12,2) = "04") or (SUBSTR(imei,12,2) = "05")) ) a
join
(SELECT distinct imei
FROM eventdata
where timestamp between TO_DATE("2016-06-01") AND TO_DATE("2016-07-17")
AND event = "Use" AND clientversion like '3.2%') b
on a.imei=b.imei

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос