MapReduce引擎无法查询Tez引擎执行union语句写入的数据
问题
Hive通过Tez引擎执行union相关语句写入的数据,切换到Mapreduce引擎后进行查询,发现数据没有查询出来。
回答
由于Hive使用Tez引擎在执行union语句时,生成的输出文件会存在HIVE_UNION_SUBDIR目录。
切回Mapreduce引擎后默认不读取目录下的文件,所以没有读取到HIVE_UNION_SUBDIR目录下的数据。
此时可以设置参数set mapreduce.input.fileinputformat.input.dir.recursive=true,开启union优化,决定是否读取目录下的数据。