Если количество записей для агрегирования велико, и вы не хотите жестко его кодировать.
Создайте udf, который будет возвращать последовательность чисел
[prjai@lnx0689 py_ws]$ cat prime_num.py
import sys
try:
for line in sys.stdin:
num = int(line)
for i in range(1, num+1):
#print u"i".encode('utf-8')
print u"%i".encode('utf-8') %(i)
except:
print sys.exc_info()
Добавить скрипт PythonENV
hive> add FILE /home/prjai/prvys/py_ws/prime_num.py
Создать временную таблицу для вышеуказанного сценария
hive> create temporary table t1 as with t1 as (select transform(10) using 'python prime_num.py' as num1) select * from t1;
Ваш запрос будет -
hive> with t11 as (select 'A' as event, 3 as count) select t11.event, t11.count from t11, t1 where t11.count>=t1.num1;
Надеюсь, это поможет.