【问题标题】:Hive multiple CTEs in view视图中的 Hive 多个 CTE
【发布时间】:2017-10-16 02:34:28
【问题描述】:

Hive 是否支持 VIEW 语句中的多个 CTE?我知道 Hive 支持 CTE (HIVE-1180),但不确定它是否有任何限制 - 例如,在 VIEW 语句中支持多个 CTE:

CREATE OR REPLACE VIEW prdviews.temp
AS WITH set1 AS (SELECT 1 AS id FROM testdb.table1), 
        set2 AS (select 2 AS id FROM testdb.table2)
SELECT * FROM set1
UNION ALL
SELECT * FROM set2;

select * from prdviews.temp;

执行上述查询成功创建 Hive 视图。但是当我运行 SELECT 查询时,它会返回错误。还是我做错了?上述查询或任何类似查询返回类似于以下的错误:

Error while compiling statement: FAILED: SemanticException Line 3:24 Table not found 'set1' in definition of VIEW temp [ WITH set1 AS (SELECT 1 AS `id` FROM `testdb`.`table1`), set2 AS (select 2 AS `id` FROM `testdb`.`table2`) SELECT `set1`.`id` FROM set1 UNION ALL SELECT `set2`.`id` FROM set2 ] used as temp at Line 1:14

【问题讨论】:

  • 问题出在UNION ALL
  • 我也遇到了类似的问题,有人找到解决办法了吗?

标签: sql hadoop apache-spark hive


【解决方案1】:

以下在 CDH 5x 中工作

with t1 as(select * from empinfo where empid=101),t2 as(select * from empinfo where empid=102) select * from t1 union all select * from t2;

还有下面的

select * from empinfo where empid=101 union all select * from empinfo where empid=102;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多