【问题标题】:Hive Union Failed due to SemanticException Schema of both sides of union should match由于联合双方的 SemanticException 架构应匹配,Hive 联合失败
【发布时间】:2022-11-22 02:08:05
【问题描述】:

我有 2 个表,我想获取两个表的所有记录。所以我的计划是做 Union 并加入两个表,但是当我尝试这样做时,我收到一条错误消息, “编译语句时出错:失败:联合双方的 SemanticException 模式应该匹配”。 这是我的两张桌子 表A

id  name        Start_date  budget  dueDate
1   ans2022     20/12/2022  230     25/12/2022
2   moj_2322    23/12/2022  345     30/12/2022
3   jjo1922     19/11/2022  450     28/11/2022
5   oit1522     15/12/2022  150     27/12/2022
8   oiye2122    21/12/2022  375     29/12/2022

表B

id  Account op_name     Op_id
1   12098   Abco        1
1   12098   cbdi        2
1   12098   asdt        3
2   20940   wedq        4
2   20940   sadw        5
3   41895   2022_asr    6
4   39805   gtr43       7
4   39805   ress        8
5   12098   fgtre       9
5   12098   sehy        10
6   23565   redj        11
6   23565   23ertbs     12

我期待的结果如下

id  name        Start_date  budget  Account     op_name     Op_id
1   ans2022     20/12/2022  230     12098       Abco        1
1   ans2022     20/12/2022  230     12098       cbdi        2
1   ans2022     20/12/2022  230     12098       asdt        3
2   moj_2322    23/12/2022  345     20940       wedq        4
2   moj_2322    23/12/2022  345     20940       sadw        5
3   jjo1922     19/11/2022  450     41895       2022_asr    6
4                                   39805       gtr43       7
4                                   39805       ress        8
5   oit1522     15/12/2022  150     12098       fgtre       9
5   oit1522     15/12/2022  150     12098       sehy        10
6                                   23565       redj        11
6                                   23565       23ertbs     12
8   oiye2122    21/12/2022  375         

下面是我的代码并出现上述错误

select id, name, Start_date, budget from 
A
group by id, name, Start_date, budget
  union
select id, Account, op_name, Op_id
  from
  B
group by id, Account, op_name, Op_id

任何帮助,将不胜感激。

谢谢

【问题讨论】:

    标签: sql hive hiveql


    【解决方案1】:

    这是LEFT JOIN的案例

    SELECT b.id,  a.name,a.Start_date, a.budget,a.dueDate
    b.Account, b.op_name,b.Op_id
    FROM TableB b 
    LEFT OUTER JOIN TableA a 
    ON (b.id = a.id);
    

    你可以找到更多关于加入here

    【讨论】:

    • 感谢您指导我学习教程。这说明了一切
    猜你喜欢
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多