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

问题描述/异常栈
FAQ-unix_timestamp()函数在spark和impala中用法不同 - 图1 FAQ-unix_timestamp()函数在spark和impala中用法不同 - 图2 spark在运行unix_timestamp()函数时查询返回值是null impala在运行unix_timestamp()函数时查询返回值是正常时间戳
解决方案
解决方法: 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不支持,所以需要写完整。

作者:陈杰