【发布时间】:2016-06-29 16:59:56
【问题描述】:
以下是我尝试在 Hive 上运行的查询,执行引擎为 tez。
SELECT A.CITY, A.NAME, B.PRICE
,(ROW_NUMBER() OVER (PARTITION BY A.NAME ORDER BY B.PRICE) ) AS RNUM
FROM TABLE1 A
LEFT JOIN TABLE2 B
ON A.NAME = B.NAME
WHERE ( A.COLUMN2 >= B.COLUMN3 AND A.COLUMN2 < B.COLUMN4)
GROUP BY A.CITY, A.NAME, B.PRICE;
- 当我对 Hive 中的数据运行上述查询时,它会持续运行数小时 没有任何结果,但从语法上看,上面的查询是正确的。
- TABLEA 和 TABLEB 都有数百万条记录。
我尝试改变数据格式,增加容器大小,改变reducer的数量和堆大小。无论我更改什么参数,查询都会被卡住。
在我的进一步调查中,我注意到 where 条件和窗口函数导致查询无限运行。
这是我的问题:
- 什么变化会使查询端到端地运行 数据?
感谢您的帮助
【问题讨论】:
标签: hadoop hive hiveql hadoop2 tez