从多个Hive表中获取记录而不加入

时间:2014-07-14 18:00:48

标签: hadoop hive

我有两张桌子:

Table1 desc:

count int

表2 desc:

count_val int

我从上面的表中获取字段count,count_val并插入另一个Audit表(table3)。

表3 desc:

count int
count_val int

我正在尝试将这两个表的记录计数记录到每个作业运行的审计表中。

您的任何建议都表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

如果你只需要聚合(如总和),解决方案就是使用UNION

INSERT INTO TABLE audit 
    SELECT
        SUM(count),
        SUM(count_val)
    FROM (
            SELECT
                t1.count,
                0 as count_val
            FROM table1 t1 

            UNION ALL

            SELECT
                0 as count,
                t2.count_val
            FROM table2 t2
    ) unioned;

否则需要加入,因为你应该以某种方式匹配你的行,这就是关系代数(SQL背后的理论)的工作方式。

==table1==
| count| 
|------|
|  12  |
|  751 |
|  167 |

===table2===
| count_val| 
|----------|
|   1991   |
|   321    |
|   489    |
|   7201   |
|   3906   |

===audit===
| count | count_val| 
|-------|----------|
|   ??? |    ???   |