FAQ- unix_timestamp()函数在spark和impala中用法不同

问题描述/异常栈
spark在运行unix_timestamp()函数时查询返回值是null
impala在运行unix_timestamp()函数时查询返回值是正常时间戳
FAQ-unix_timestamp()函数在spark和impala中用法不同 - 图1
FAQ-unix_timestamp()函数在spark和impala中用法不同 - 图2
解决方案
解决方法:
spark在运行unix_timestamp()函数时加下时间参数'YYYY-MM-dd'
例如:
select unix_timestamp('${azkaban.flow.1.days.ago}','yyyy-MM-dd')
问题原因
这是因为impala对unix_timestamp()函数有隐式转换 默认转换为
unix_timestamp('xxxx')------>unix_timestamp('xxxx','YYYY-MM-dd')
而spark不支持,所以需要写完整。

作者:陈杰