【发布时间】:2023-03-24 11:19:01
【问题描述】:
我正在整理一个每天都会刷新的查询,它需要从最近十个日期中提取记录。
我正在访问的表有一个带有 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 列?
【问题讨论】:
-
DATEDIFF(from_unixtime(unix_timestamp()),ts)
标签: sql hadoop hive hiveql impala