代码之家  ›  专栏  ›  技术社区  ›  Gaurang Shah

两个查询的单元单元联合出现编译错误

  •  0
  • Gaurang Shah  · 技术社区  · 3 年前

    我不确定下面的配置单元查询出了什么问题。然而,这是一个投掷错误。

    select h.database_name, h.table_name, h.frequency as hive_frequency, i.frequency as impala_frequency    
    from hive_access_frequency h
    left join impala_access_frequency i
    on 
    h.database_name = i.database_name and 
    h.table_name = i.table_name
    union
    select i.database_name, i.table_name, h.frequency as hive_frequency, i.frequency as impala_frequency    
    from impala_access_frequency i
    left join hive_access_frequency h
    on 
    h.database_name = i.database_name and 
    h.table_name = i.table_name
    

    我可以单独运行这些查询。但是,在与 union

    错误

    Error: Error while compiling statement: FAILED: ParseException line 8:0 missing ALL at 'select' near '<EOF>' (state=42000,code=40000)
    
    
    0 回复  |  直到 3 年前
        1
  •  0
  •   leftjoin    3 年前

    Hive versions prior to 1.2.0 only support UNION ALL

    解决方法:使用UNION ALL而不是UNION,将所有内容包装到子查询中并应用不同的

    select DISTINCT <column_list>
    from
    (
    select ...
    UNION ALL
    select ...
    )s;
    

    UNION与UNION ALL+DISTINCT相同