hive union all报错

今天在写一个sql的时候,使用了hive的union all,运行时报错。

sql如下:

select dimension_name,dt,dtype_name,uv,new_uv,old_uv,pv,stay_time from temp_bi.uv
union all
select ‘平台‘ dimension_name
,dt
,app_platform dtype_name
,count(distinct mid) uv
,count(distinct case when is_new = 1 then mid end) new_uv
,count(distinct case when is_new = 0 then mid end) old_uv
,sum(pv_num) pv
,sum(stay_time) stay_time  --停留时长(秒)
from vipdw.dw_log_app_visit_ds1
where dt between get_dt_date(get_date(-1)) and get_dt_date(get_date(-1))
group by ‘平台‘ ,dt ,app_platform

报错信息如下:

FAILED: SemanticException 1:71 Top level UNION is not supported currently; use a subquery for the UNION. Error encountered near token ‘app_platform‘

hive不支持顶层的union all,使用子查询来解决即可:

select * from (
select dimension_name,dt,dtype_name,uv,new_uv,old_uv,pv,stay_time from temp_bi.uv
union all
select ‘平台‘ dimension_name
,dt
,app_platform dtype_name
,count(distinct mid) uv
,count(distinct case when is_new = 1 then mid end) new_uv
,count(distinct case when is_new = 0 then mid end) old_uv
,sum(pv_num) pv
,sum(stay_time) stay_time  --停留时长(秒)
from vipdw.dw_log_app_visit_ds1
where dt between get_dt_date(get_date(-1)) and get_dt_date(get_date(-1))
group by ‘平台‘ ,dt ,app_platform) a

hive union all报错,布布扣,bubuko.com

时间: 2024-10-12 04:15:25

hive union all报错的相关文章

hive 初始化数据库报错

安装hive,初始化数据库的时候报错 schematool -dbType mysql -initSchema Metastore Connection Driver : com.mysql.cj.jdbc.Driver Metastore connection User: hive org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version. Underlying cause: java.sq

【ORACLE】 两个order by的SQL使用 UNION 或者 UNION ALL 报错 ORA-00933:sql命令未正确结束

在oracle sql中,要求order by是select语句的最后一个语句,而且一个select语句中只允许出现一个order by语句,而且order by必须位于整个select语句的最后. union操作实际上做了两部分动作:结果集合并 + 排序, union all只进行结果集简单合并,不做排序,效率比union高 . 例子: 表一:table1  查询语句 : select  * from table1 t1  order by t1. c1  ;         表二:table

修改NameNode端口后,hive表查询报错

在进行使用hive查询表数据的时候,抛出异常 hive> select*from blackList;FAILED: SemanticException Unable to determine if hdfs://node1:8020/opt/hive/warehouse is encrypted: java.lang.IllegalArgumentException: Wrong FS: hdfs://node1:8020/opt/hive/warehouse, expected: hdfs:

hive执行任务报错Execution failed with exit status: 3

2014-12-18 03:21:03 Starting to launch local task to process map join; maximum memory = 1065484288 2014-12-18 03:21:08 Processing rows: 200000 Hashtable size: 199999 Memory usage: 112049704 percentage: 0.105 2014-12-18 03:21:09 Processing rows: 30000

Hive 执行查询语句报错,由于内存空间不足导致

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp/hive/root/5a62374a-9509-4d20-befb-de0e00c0e7ad/hive_2019-06-14_11-12-24_067_6655769013562582754-1/-mr-10016. Name node is in

关于HIVE做MapReduce报错:return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

大部分人没有交换分区的问题. 因为在做Linux的时候交换分区是按照内存的2倍来做的.但是我的是用VM快速装机做的.所以交换分区被设置成了等于内存. 扩展交换分区:https://blog.csdn.net/Ares_song/article/details/81203251 永久添加该文件:https://blog.csdn.net/kai_wei/article/details/53582811 另外MYSQL一个重复IP连接问题可能导致HIVE初始化实例失败,需要在所在用户执行:https

hive报错(1)MoveTask

今天在CDH上执行hive sql的时候报了一个错. 错误内容为: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask错误语句: INSERT OVERWRITE DIRECTORY '{$dir}' select * from tmp_analyse_os where logdata='{$begin}'  ; 错误原因: hive源码会检查导出的路径是否存在,如果不存在则报这个

Hive报错 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

报错信息如下 Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D 解决方法: 编辑 hive-site.xml 文件,添加下边的属性 <property> <name>system:java.io.tmpdir<

hive报错 Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:For direct MetaStore DB connections,

学习hive 使用mysql作为元数据  hive创建数据库和切换数据库都是可以的 但是创建表就是出问题 百度之后发现 是编码问题 特别记录一下~~~ 1.报错前如图: 2.在mysql数据库中执行如下: 1 ALTER DATABASE hive CHARACTER SET latin1; 3.修改编码后创建数据库成功: