
# Spark无法查询Tez引擎执行union语句写入的数据
#### 问题
Hive通过Tez引擎执行union相关语句写入的数据，切换到Spark引擎后进行查询，发现数据没有查询出来。
#### 回答
由于Hive使用Tez引擎在执行union语句时，生成的输出文件会存在HIVE_UNION_SUBDIR目录，切回Spark引擎后默认不读取目录下的文件，所以没有读取到HIVE_UNION_SUBDIR目录下的数据。
此时可以设置参数**set mapreduce.input.fileinputformat.input.dir.recursive=true**，开启union优化，决定是否读取目录下的数据。
![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
- ORC表需设置： set spark.sql.hive.convertMetastoreOrc=false
  

- Parquet表需要设置： set spark.sql.hive.convertMetastoreParquet=false
  
 
