Hive:如何连接两个表,使两列中的所有条目都在最终表中?
Hive: How to join two tables such that all entries from two columns are in the final able?
我在 Hive 中有两个 table
t1:
prod | rev
-------------
A | 1
A | 2
B | 1
B | 2
D | 1
t2:
prod | rev
-------------
A | 1
A | 2
B | 1
B | 2
C | 1
C | 2
我想将它们连接在一起,这样所有的产品 (prod) 和修订版 (rev) 都在最后 table 例如。
t3:
prod | rev
-------------
A | 1
A | 2
B | 1
B | 2
C | 1
C | 2
D | 1
我已经尝试过,但对 HQL 的熟悉程度不足以理解如何正确地执行它。
我相信也许 LEFT JOIN 然后 UNION ALL 然后 RIGHT JOIN 会起作用。并在 UNION ALL 之后使用 WHERE 语句来删除重复项,但我无法编写有效的查询。希望对此有任何帮助。
一个union
应该可以做到。
select * from t1
union
select * from t2;
您可以尝试UNION DISTINCT
,它可以消除输出中的重复项
select * from t1
UNION DISTINCT
select * from t2
我在 Hive 中有两个 table
t1:
prod | rev
-------------
A | 1
A | 2
B | 1
B | 2
D | 1
t2:
prod | rev
-------------
A | 1
A | 2
B | 1
B | 2
C | 1
C | 2
我想将它们连接在一起,这样所有的产品 (prod) 和修订版 (rev) 都在最后 table 例如。
t3:
prod | rev
-------------
A | 1
A | 2
B | 1
B | 2
C | 1
C | 2
D | 1
我已经尝试过,但对 HQL 的熟悉程度不足以理解如何正确地执行它。
我相信也许 LEFT JOIN 然后 UNION ALL 然后 RIGHT JOIN 会起作用。并在 UNION ALL 之后使用 WHERE 语句来删除重复项,但我无法编写有效的查询。希望对此有任何帮助。
一个union
应该可以做到。
select * from t1
union
select * from t2;
您可以尝试UNION DISTINCT
,它可以消除输出中的重复项
select * from t1
UNION DISTINCT
select * from t2