下面是我尝试在 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 都有数百万条记录。
我尝试更改数据格式、增加容器大小、更改减速器数量和更改堆大小。无论我更改什么参数,查询都会被卡住。
在我的进一步调查中,我注意到 where 条件和窗口函数导致查询无限运行。
这是我的问题:
- 使查询在海量数据上端到端运行的变化是什么?
谢谢你的帮助