Hadoop 将时间戳分为上午、下午、晚上

Hadoop 将时间戳分为上午、下午、晚上,hadoop,hive,Hadoop,Hive,我有一张蜂巢桌,像这样: create table my_table ( my_timestamp String ) 我的时间戳的格式为YYYY-MM-DD HH:MM:SS。我需要将其分为以下几类: 清晨:6:01至9:00之间 上午:9:01至12:00 下午:12:01至下午3:00 晚上:下午3:01至6:00 晚上6:01到05:59 一个选项是将我的时间戳转换为unix\u时间戳(),为清晨等创建另一个unix\u时间戳(),然后减去2个unix\u时间戳(),对其进行分类 我

我有一张蜂巢桌,像这样:

create table my_table
(
my_timestamp String
)
我的时间戳的格式为
YYYY-MM-DD HH:MM:SS
。我需要将其分为以下几类:

  • 清晨:6:01至9:00之间
  • 上午:9:01至12:00
  • 下午:12:01至下午3:00
  • 晚上:下午3:01至6:00
  • 晚上6:01到05:59
一个选项是将我的时间戳转换为
unix\u时间戳()
,为清晨等创建另一个
unix\u时间戳()
,然后减去2个
unix\u时间戳()
,对其进行分类

我想知道是否有人能想出一个更简单的方法来做到这一点。谢谢你的帮助


提前感谢。

即使我没有使用Hive,我想我也只需要这里的
int hour(string date)
函数和相应的
minute()
函数。
select    
case floor(hour(my_timestamp) / 3)
when 2 then 'Early Morning'
when 3 then 'Morning'
when 4 then 'Afternoon'
when 5 then 'Evening'
else 'Night'
done
from my_table