我有两个hadoop集群:
我在 SQL 下运行
set hive.execution.engine=spark;
with t1 as (
select 1 as id, 11 as code
)
, t2 as (
select 2 as id, '22' as code
)
select * from t1
union all
select * from t2;
但是在CDH集群中,这个SQL会抛出:
[42000][40000] 编译语句时出错:FAILED:SemanticException 9:14 联合两侧的架构应匹配:第一个表上的列代码为 int 类型,第二个表上的列代码为 string 类型。令牌“t2”附近遇到错误
那么这两个Hive有什么区别呢?
我们有很多这样的 SQL,但我们无法承担使用
cast(xxx as string)
更改它们的成本。如何让CDH Hive像HDP一样工作?
非常感谢您的帮助!
根据Hive问题:https://issues.apache.org/jira/browse/HIVE-14251,这是一个BUG,所以没有设置。
有两种解决方案: