失败:semanticexception generate map join任务错误:未能通过异常生成新的mapjoin运算符:索引:0,大小:0

9njqaruj  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(684)

我正在做一个联盟如下:

insert overwrite table T3 select * from
 ( 
   SELECT cast (c1 as decimal(6,3)) as c1, c2
   FROM T1
   [WHERE conditions]
   UNION ALL
   SELECT c1, c2
   FROM T2
   [WHERE conditions]
 );

t2中的c1是计算出来的,其中t1中的c1是字符串。
当我把t1中的c1转换成两倍时;出现以下错误:
失败:semanticexception generate map join任务错误:未能通过异常生成新的mapjoin运算符:索引:0,大小:0
此表(上述查询的输出)将插入到另一个表中,其中c1列是double。

ehxuflar

ehxuflar1#

如果您使用的是view,那么这可能就是join所在的位置。
尝试禁用mapjoin作为解决方法,建议如下:

set hive.auto.convert.join=false;

或者在查询中使用之前具体化视图(加载到表中)。

相关问题