我在使用Hive SQL时,一直以关系型数据库SQL的语法写的Hive SQL。当多表union同时需要去重的时候,我是用了如下SQL:
select a.col1,a.col2,a.col3 from table_name_1 a
union
select b.col1,b.col2,b.col3 from table_name_2 b
在运行时报错,错误信息为:
- Error while compiling statement: FAILED: ParseException line 3:0 missing ALL at 'select' near '<EOF>'
提示少了 ALL。查询了官网关于union的用法说明,发现,Hive在1.2.0之前的版本只支持union all,在1.2.0之后的版本才支持union.而我的Hive版本是1.1.0。
解决办法只能是使用union all,然后再在外边套一层 select distinct 自己手动实现去重。