微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hive-通过从不同表中选择列来创建表

如何解决Hive-通过从不同表中选择列来创建表

这是我的蜂巢表:

表1:

|a |b |c |
----------
|a1|b1|c1|
|a2|b2|c2|
|a3|b3|c3|
|a4|b4|c4|
|a5|b5|c5|

表2:

|x |y |z |
----------
|x1|y1|z1|
|x2|y2|z2|
|x3|y3|z3|
|x4|y4|z4|
|x5|y5|z5|

所需的输出

|a |b |x |y |
-------------
|a1|b1|x1|y1|
|a2|b2|x2|y2|
|a3|b3|x3|y3|
|a4|b4|x4|y4|
|a5|b5|x5|y5|

蜂巢中真的有可能吗?任何帮助将不胜感激,谢谢!

解决方法

您似乎想“排列”两个表的行。假设可以使用列atable1中的记录进行排序(分别是x中的列table2),则可以按如下方式使用row_number():>

select t1.a,t1.b,t2.x,t2.y
from (select t1.*,row_number() over(order by a) rn from table1 t1) t1
inner join (select t2.*,row_number() over(order by x) rn from table2 t2) t2
    on t1.rn = t2.rn

如果表的行数可能不同,并且您想保留“其他”行,则只需将inner join更改为full join

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。