失败:SemanticException 生成 Map Join 任务错误:无法通过异常生成新的 mapJoin 运算符:索引:0,大小:0
Posted
技术标签:
【中文标题】失败:SemanticException 生成 Map Join 任务错误:无法通过异常生成新的 mapJoin 运算符:索引:0,大小:0【英文标题】:FAILED: SemanticException Generate Map Join Task Error: Failed to generate new mapJoin operator by exception : Index: 0, Size: 0 【发布时间】:2019-11-15 23:01:15 【问题描述】:我正在做一个联合如下:
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 施放为双倍时;出现以下错误:
FAILED: SemanticException Generate Map Join Task Error: Failed to 通过异常生成新的 mapJoin 运算符:索引:0,大小:0
此表(上述查询的输出)将被插入到另一个 c1 列为 double 的表中。
【问题讨论】:
奇怪的是,既没有连接,也没有横向视图或其他可能可以转换为 MapJoin 的运算符。 【参考方案1】:如果您使用的是视图,这可能是连接的位置。
按照here 的建议尝试禁用 MapJoin 作为解决方法:
set hive.auto.convert.join=false;
或在查询中使用之前具体化视图(加载到表中)。
【讨论】:
以上是关于失败:SemanticException 生成 Map Join 任务错误:无法通过异常生成新的 mapJoin 运算符:索引:0,大小:0的主要内容,如果未能解决你的问题,请参考以下文章
SemanticException [错误 10085]:不支持使用 LATERAL VIEW 连接 'id'
Hive:FAILED: SemanticException [Error 10001]: Line 1:14 Table not found 'Field'