Hive时间戳的踩坑
公司的数据处理是用的Spark on Hive, 在处理时间戳的时候,又踩了坑。在一个过滤条件中,带毫秒的时间戳没有得到期待的结果。
比如下面的SQL中,按照理解49ms早于118毫秒的,所以SQL执行结果是 True
,但实际结果却是False
1 | select |
若想要得到期待的结果,需要转换成13位的,带毫秒的时间戳,再进行转换。
可以使用如下的方式(其中ts2ms为自定义UDF函数):
1 | select |
公司的数据处理是用的Spark on Hive, 在处理时间戳的时候,又踩了坑。在一个过滤条件中,带毫秒的时间戳没有得到期待的结果。
比如下面的SQL中,按照理解49ms早于118毫秒的,所以SQL执行结果是 True
,但实际结果却是False
1 | select |
若想要得到期待的结果,需要转换成13位的,带毫秒的时间戳,再进行转换。
可以使用如下的方式(其中ts2ms为自定义UDF函数):
1 | select |