先上代码:
select
vid,
from_unixtime(gpsdate,'yyyy-MM-dd HH:mm:ss') as time
from xxxxx
where pdt = '2020-01-01'
and vid = '010019410390'
order by gpsdate
limit 10;
一行简单的代码,没啥毛病。但是,这行代码,在 SparkSQL 中没毛病,在 Hive 中却执行不了。ps:我司 Hive 是 1.2 版本,有点老旧了。。。Spark 用的是 2.2版本。
在 Hive 中(至少是1.2中)需要这么写:
select
vid,
from_unixtime(gpsdate,'yyyy-MM-dd HH:mm:ss') as time
from xxxxx
where pdt = '2020-01-01'
and vid = '010019410390'
order by time
limit 10;
区别就在于 order by 后面一个需要使用别名,一个可以使用原始字段名。真是一个没有注意到的区别。不知道之后的版本有没有进行修改。