我正在做一个联盟如下:
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。
1条答案
按热度按时间ehxuflar1#
如果您使用的是view,那么这可能就是join所在的位置。
尝试禁用mapjoin作为解决方法,建议如下:
或者在查询中使用之前具体化视图(加载到表中)。