pyhive使用having时与hive区别
代码如下:
select a.*
from raw a
join(
select device_id,count(distinct vid) num
from raw
group by device_id
having count(distinct vid) between 2 and 20
)b on a.device_id = b.device_id
limit 10
其中raw是一张with建立的临时表,这段代码的作用是取出观看视频次数在2~20之前的用户的数据,在hive中代码通过,但是在pyhive中会报错:Invalid column reference 'vid'
需要加入红色部分,也就是having的过滤条件即可正确运行。