我正在整理一个查询,该查询每天都会刷新,需要从最近十个日期中提取记录。

我正在访问的表的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)

我不确定这是否超轻但可以使用!

10-08 14:27