Hive 映射侧连接的性能如何比常规连接(配置单元)差

Hive 映射侧连接的性能如何比常规连接(配置单元)差,hive,hiveql,amazon-emr,Hive,Hiveql,Amazon Emr,我对以下查询有性能问题: INSERT OVERWRITE TABLE output PARTITION(`date`) SELECT DISTINCT i1.type, i1.id1, i1.id2, i1.id3, i1.id4, i1.input_date AS `date` FROM input1 AS i1 INNER JOIN input2 AS i2 ON i1.token = i2.token WHERE i1.city IN ('london', 'pa

我对以下查询有性能问题:

INSERT OVERWRITE TABLE output PARTITION(`date`)
SELECT DISTINCT
  i1.type,
  i1.id1,
  i1.id2,
  i1.id3,
  i1.id4,
  i1.input_date AS `date`
FROM input1 AS i1 INNER JOIN input2 AS i2 ON i1.token = i2.token
WHERE i1.city IN ('london', 'paris') AND i2.p_id != '1234'
  AND COALESCE(i1.id1, i1.id2, i1.id3, i1.id4) IS NOT NULL;
其中,表格input1由10个文件组成,每个文件约40mb(ORC,压缩),表格input2由1个txt文件(~50kb)组成。根据hive.auto.convert.join参数的值,执行时间会有很大的差异(当auto convert设置为false时,查询的运行速度会快20倍),但我找不到这种情况的原因


顺便说一句,我只在一个节点上运行配置单元,在这两种情况下集群都有大量未使用的ram,配置单元版本是2.3.5

这些字段的数据类型是否相同-i1.id1、i1.id2、i1.id3、i1.id4?合并后的表达式应具有相同的类型,否则hive将尝试转换它们以检查其是否为null。@KoushikRoy所有这些字段都是字符串