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