Hive 具有UNION ALL的配置单元CTE正在引发表未找到异常

Hive 具有UNION ALL的配置单元CTE正在引发表未找到异常,hive,Hive,我的意图是使用CTE只加载一次表,并重用CTE表,以避免在配置单元中加载多个表和阶段。 但是下面的配置单元查询正在运行,在运行cloudera 5.11版本时,会抛出未找到的表案例异常。 查询使用中有错误吗 WITH cases AS ( SELECT nbr ,id ,date_l2 ,date_l3 ,date_l4 ,date_l5 ,level_2 ,level_3

我的意图是使用
CTE
只加载一次表,并重用
CTE
表,以避免在配置单元中加载多个表和阶段。 但是下面的配置单元查询正在运行,在运行cloudera 5.11版本时,会抛出
未找到的表案例
异常。 查询使用中有错误吗

WITH cases
AS (
    SELECT nbr
        ,id
        ,date_l2
        ,date_l3
        ,date_l4
        ,date_l5
        ,level_2
        ,level_3
        ,level_4
        ,level_5
    FROM volume
    )
SELECT nbr
    ,id
    ,CONCAT (
        nbr
        ,'-L2'
        ) AS enbr
    ,'L2' AS level_nm
    ,date_l2 AS dt
FROM cases
WHERE level_2 = true

UNION ALL

SELECT nbr
    ,id
    ,CONCAT (
        nbr
        ,'-L3'
        ) AS enbr
    ,'L3' AS level_nm
    ,date_l3 AS dt
FROM cases
WHERE level_3 = true

UNION ALL

SELECT nbr
    ,id
    ,CONCAT (
        nbr
        ,'-L4'
        ) AS enbr
    ,'L4' AS level_nm
    ,date_l4 AS dt
FROM cases
WHERE level_4 = true

UNION ALL

SELECT nbr
    ,id
    ,CONCAT (
        nbr
        ,'-L5'
        ) AS enbr
    ,'L5' AS level_nm
    ,date_l5 AS dt
FROM cases
WHERE level_5 = true
输出: nbr id enbr等级\u nm dt 00193092 84575 00193092-L2 2016-10-19 00193092 84575 00193092-L3 L3 2016-10-20
00193092 84575 00193092-L4 L4 2016-10-20

考虑在问题主体中使用适当的格式,并提供一个最小的工作示例。不确定您的错误,但仍将对其中提到的每个选择执行CTE。它的行为与您所希望的不一样。对它所做的事情进行一些解释会很有帮助。@Andrew,OP会尽快提供样本数据。谢谢Dudu Markovitz。成功了。下面是示例输出。nbr id enbr等级:nm dt 00193092 84575 00193092-L2 L2 2016-10-19 00193092 84575 00193092-L3 L3 2016-10-20 00193092 84575 00193092-L4 L4 2016-10-20请将其添加到原始帖子中
select  t.nbr
       ,t.id
       ,concat(t.nbr,'-L',s.nm) as enbr
       ,concat('L',s.nm)        as level_nm
       ,s.dt

from    volume  t
        lateral view stack 
        (
            4
           ,'2',t.level_2,t.date_l2
           ,'3',t.level_3,t.date_l3
           ,'4',t.level_4,t.date_l4
           ,'5',t.level_5,t.date_l5
        ) s as nm,lvl,dt

where   s.lvl = true
;