失败: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 无法获取表

SemanticException [错误 10085]:不支持使用 LATERAL VIEW 连接 'id'

Hive:FAILED: SemanticException [Error 10001]: Line 1:14 Table not found 'Field'

场景:生成截图的时候失败

编译语句时出错:FAILED:SemanticException [错误 10036]:列名重复:p_id

Hive 给出 SemanticException [错误 10014]:运行我的 UDF 时