我正在整理一个每天都会刷新的查询,需要从过去的十个日期中提取记录。
我正在访问的表格中包含带有unix时间戳的“xxdatetime”列和带有yyyy-mm-dd日期的“eventdate”列。
在Impala中,答案很简单:
where eventdate > to_date(days_sub(now(), 10))
我在Hive中使用了它的一个变种但失败了,因为我猜它是在扫描整个表并且表格很大:
where datediff(cast(current_timestamp() as string), eventdate)=10
Hive SQL中是否有一种轻量级方法可以按“今天 - 10天”过滤xxdatetime或eventdate列?
答案 0 :(得分:2)
Eventdate是我的索引列,date_sub是(字符串,减去天数),current_date是当前Hive yyyy mm dd。
eventdate > date_sub(current_date, 5)
我不确定这是否超重,但它有效!