Hive 失败:SemanticException生成映射联接任务错误:无法通过异常生成新的映射联接运算符:索引:0,大小:0

Hive 失败:SemanticException生成映射联接任务错误:无法通过异常生成新的映射联接运算符:索引:0,大小:0,hive,type-conversion,union-all,Hive,Type Conversion,Union All,我正在做一个工会,具体如下: 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转

我正在做一个工会,具体如下:

 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生成映射联接任务错误:未能 按异常生成新的mapJoin运算符:索引:0,大小:0


此表(上述查询的输出)将插入到c1列为双精度的另一个表中。

如果您使用的是view,并且这可能是联接所在的位置

尝试禁用MapJoin作为建议的解决方法:


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

奇怪的是,既没有连接,也没有横向视图或其他可以转换为MapJoin的操作符。
set hive.auto.convert.join=false;